/* ============================================================
   Sekar Ramajeyam — Digital Profile
   Design system: "Audit Ledger"
   (sibling system to "Infrastructure Blueprint" — shares the
   dark/mono/Fraunces chassis, distinct accent + motif)
   ============================================================ */

:root{
    /* Color */
    --ink:        #15171C;
    --ink-soft:   #1A1D24;
    --surface:    #1E222B;
    --surface-2:  #242833;
    --line:       rgba(236,231,216,0.12);
    --line-strong:rgba(236,231,216,0.22);
    --paper:      #ECE7D8;
    --paper-dim:  #A8A192;
    --paper-faint:#6E6A60;
    --signal:     #2563EB;
    --signal-soft:rgba(37,99,235,0.16);
    --slate:      #5B7A99;
    --slate-soft: rgba(91,122,153,0.16);

    /* Type */
    --font-display:'Fraunces', serif;
    --font-body:'Inter', sans-serif;
    --font-mono:'IBM Plex Mono', monospace;

    /* Layout */
    --maxw: 1200px;
    --gutter: 7%;
    --radius-sm: 3px;
    --radius-md: 6px;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
    font-family:var(--font-body);
    background:var(--ink);
    color:var(--paper);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }

a{ color:inherit; text-decoration:none; }

::selection{ background:var(--signal); color:var(--paper); }

:focus-visible{
    outline:2px solid var(--signal);
    outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
    *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

/* ---------- shared layout helpers ---------- */

.section{
    padding:96px var(--gutter);
}

.section-inner{
    max-width:var(--maxw);
    margin:0 auto;
}

.eyebrow{
    font-family:var(--font-mono);
    font-size:12px;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:var(--signal);
}

.section-title{
    max-width:640px;
    margin-bottom:56px;
}

.section-title h2{
    font-family:var(--font-display);
    font-weight:600;
    font-size:clamp(28px,3.2vw,40px);
    color:var(--paper);
    margin:10px 0 14px;
}

.section-title p{
    color:var(--paper-dim);
    font-size:16px;
    line-height:1.7;
}

.reveal{
    opacity:0;
    transform:translateY(18px);
    transition:opacity 0.6s ease, transform 0.6s ease;
}
.reveal.is-visible{
    opacity:1;
    transform:translateY(0);
}

/* solid hairline divider — a ruled line, not a dotted one: this is a ledger, not a blueprint */
.divider{
    height:1px;
    background:var(--line-strong);
    max-width:var(--maxw);
    margin:0 auto;
}

/* ============================================================
   NAV
   ============================================================ */

.nav{
    position:sticky;
    top:0;
    z-index:50;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:18px var(--gutter);
    background:rgba(21,23,28,0.82);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
}

.nav-mark{
    font-family:var(--font-mono);
    font-size:14px;
    letter-spacing:0.08em;
    color:var(--paper);
}
.nav-mark span{ color:var(--signal); }

.nav-links{
    display:flex;
    align-items:center;
    gap:32px;
    list-style:none;
}

.nav-links a{
    font-family:var(--font-mono);
    font-size:12px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--paper-dim);
    position:relative;
    padding-bottom:4px;
    transition:color 0.2s ease;
}
.nav-links a:hover{ color:var(--paper); }
.nav-links a::after{
    content:'';
    position:absolute;
    left:0; bottom:0;
    width:0; height:1px;
    background:var(--signal);
    transition:width 0.25s ease;
}
.nav-links a:hover::after{ width:100%; }

.nav-cta{
    font-family:var(--font-mono);
    font-size:12px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--paper);
    background:var(--signal);
    padding:10px 16px;
    border-radius:var(--radius-sm);
    transition:transform 0.2s ease, box-shadow 0.2s ease;
}
.nav-cta:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(37,99,235,0.3); }

.nav-toggle{
    display:none;
    flex-direction:column;
    gap:5px;
    background:none;
    border:none;
    cursor:pointer;
    padding:6px;
}
.nav-toggle span{
    width:22px; height:2px;
    background:var(--paper);
}

/* ============================================================
   HERO — ledger-line motif replaces blueprint grid
   ============================================================ */

.hero{
    position:relative;
    overflow:hidden;
    padding:88px var(--gutter) 0;
    background:
        linear-gradient(180deg, var(--ink) 60%, var(--ink-soft) 100%);
}

/* horizontal rule lines, like a worksheet or general ledger page,
   instead of a crosshatch grid — fewer lines, wider spacing, no verticals */
.hero::before{
    content:'';
    position:absolute;
    inset:0;
    background-image:
        repeating-linear-gradient(
            180deg,
            var(--line) 0px, var(--line) 1px,
            transparent 1px, transparent 56px
        );
    -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 30%, black 0%, transparent 75%);
    mask-image:radial-gradient(ellipse 80% 60% at 50% 30%, black 0%, transparent 75%);
    pointer-events:none;
}

/* a single vertical margin-rule, like a notebook/ledger left margin */
.hero::after{
    content:'';
    position:absolute;
    top:0; bottom:0;
    left:calc(var(--gutter) + 64px);
    width:1px;
    background:var(--line-strong);
    pointer-events:none;
}

.hero-content{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:64px;
    max-width:var(--maxw);
    margin:0 auto;
    padding-bottom:90px;
}

.hero-text{ flex:1; min-width:0; }

.tagline{
    font-family:var(--font-mono);
    font-size:12px;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--signal);
}

.hero h1{
    font-family:var(--font-display);
    font-weight:700;
    font-size:clamp(42px,6vw,68px);
    line-height:1.05;
    margin:20px 0 18px;
    color:var(--paper);
}

.hero h2{
    font-family:var(--font-display);
    font-style:italic;
    font-weight:500;
    font-size:clamp(19px,2.2vw,24px);
    line-height:1.45;
    margin-bottom:22px;
    color:var(--paper-dim);
    max-width:560px;
}

.hero-description{
    color:var(--paper-dim);
    font-size:16px;
    line-height:1.8;
    max-width:520px;
}

.status-badge{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-top:28px;
    padding:8px 14px;
    border:1px solid var(--line-strong);
    border-radius:var(--radius-md);
    background:var(--surface);
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--paper-dim);
}

/* steady, not pulsing — a sign-off light, not a build-status light */
.status-dot{
    width:7px; height:7px;
    border-radius:50%;
    background:var(--slate);
    box-shadow:0 0 0 4px var(--slate-soft);
}

.hero-buttons{ margin-top:32px; display:flex; gap:14px; flex-wrap:wrap; }

.btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-family:var(--font-mono);
    font-size:12px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    padding:14px 24px;
    border-radius:var(--radius-sm);
    transition:transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.btn-primary{
    background:var(--signal);
    color:var(--paper);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(37,99,235,0.3); }

.btn-secondary{
    border:1px solid var(--line-strong);
    color:var(--paper);
}
.btn-secondary:hover{ border-color:var(--signal); color:var(--signal); transform:translateY(-2px); }

.hero-image{
    flex:0 0 260px;
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
}

/* oval medallion frame — board-portrait feel, distinct from Infrastructure
   Blueprint's square corner-bracket frame */
.frame{
    position:relative;
    width:240px;
    height:280px;
}

.frame img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
    border-radius:50%;
    filter:saturate(0.92) contrast(1.02);
    border:3px solid var(--signal);
    box-shadow:0 0 0 8px var(--ink), 0 0 0 9px var(--line-strong), 0 18px 36px rgba(0,0,0,0.4);
}

.frame-tag{
    position:static;
    margin-top:20px;
    background:var(--surface);
    border:1px solid var(--line-strong);
    border-bottom:2px solid var(--signal);
    color:var(--paper-dim);
    font-family:var(--font-mono);
    font-size:10px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    padding:6px 10px;
    border-radius:var(--radius-sm);
}

/* ---------- stats strip ---------- */

.stats{
    position:relative;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    max-width:var(--maxw);
    margin:0 auto;
    border-top:1px solid var(--line);
}

.stat-card{
    padding:32px 28px;
    border-right:1px solid var(--line-strong);
}
.stat-card:last-child{ border-right:none; }

.stat-card .eyebrow{ display:block; margin-bottom:10px; color:var(--paper-faint); }

.stat-card h2{
    font-family:var(--font-display);
    font-weight:600;
    font-size:40px;
    color:var(--signal);
}

/* ============================================================
   EXECUTIVE PROFILE
   ============================================================ */

.executive-profile{ background:var(--ink-soft); }

.profile-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:24px;
}

.profile-card{
    background:var(--surface);
    border:1px solid var(--line);
    border-top:2px solid var(--signal);
    border-radius:var(--radius-md);
    padding:36px;
    transition:transform 0.25s ease, border-color 0.25s ease;
}
.profile-card:hover{ transform:translateY(-4px); }

.profile-card .glyph{
    color:var(--signal);
    font-family:var(--font-mono);
    font-size:13px;
    margin-bottom:18px;
    display:block;
}

.profile-card h3{
    font-family:var(--font-display);
    font-weight:600;
    font-size:23px;
    color:var(--paper);
    margin-bottom:14px;
}

.profile-card p{
    color:var(--paper-dim);
    font-size:15px;
    line-height:1.75;
}

/* ============================================================
   JOURNEY / TIMELINE — audit checkpoints, not build commits
   ============================================================ */

.timeline-section{ background:var(--ink); }

.timeline{
    position:relative;
    max-width:760px;
    margin:0 auto;
    padding-left:36px;
    border-left:1px solid var(--line-strong);
}

.timeline-item{
    position:relative;
    padding-bottom:44px;
}
.timeline-item:last-child{ padding-bottom:0; }

/* square node = a checked/signed-off entry, not a commit dot */
.timeline-item .node{
    position:absolute;
    left:-41px;
    top:4px;
    width:10px; height:10px;
    border-radius:1px;
    background:var(--ink);
    border:2px solid var(--paper-faint);
}
.timeline-item.is-current .node{
    background:var(--signal);
    border-color:var(--signal);
    box-shadow:0 0 0 4px var(--signal-soft);
}

.timeline-year{
    font-family:var(--font-mono);
    font-size:13px;
    letter-spacing:0.08em;
    color:var(--signal);
    margin-bottom:8px;
}

.timeline-content h3{
    font-family:var(--font-display);
    font-weight:600;
    font-size:21px;
    color:var(--paper);
    margin-bottom:8px;
}

.timeline-content p{
    color:var(--paper-dim);
    font-size:15px;
    line-height:1.7;
    max-width:520px;
}

/* ============================================================
   PORTFOLIO (merged projects / mandates)
   ============================================================ */

.portfolio-section{ background:var(--ink-soft); }

.portfolio-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
    gap:24px;
}

.portfolio-card{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius-md);
    padding:32px;
    transition:transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.portfolio-card:hover{
    transform:translateY(-6px);
    border-color:var(--line-strong);
    box-shadow:0 18px 40px rgba(0,0,0,0.35);
}

.portfolio-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:6px;
}

.portfolio-card h3{
    font-family:var(--font-display);
    font-weight:600;
    font-size:24px;
    color:var(--paper);
}

/* status pill now uses slate ("under control") rather than sage ("live/active") */
.status-pill{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-family:var(--font-mono);
    font-size:10px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--slate);
    background:var(--slate-soft);
    border:1px solid rgba(91,122,153,0.35);
    padding:4px 9px;
    border-radius:20px;
    white-space:nowrap;
}
.status-pill .dot{
    width:5px; height:5px;
    border-radius:50%;
    background:var(--slate);
}

.card-subtitle{
    font-family:var(--font-display);
    font-style:italic;
    color:var(--paper-faint);
    font-size:14px;
    margin-bottom:16px;
}

.portfolio-card p.card-desc{
    color:var(--paper-dim);
    font-size:14.5px;
    line-height:1.7;
    margin-bottom:20px;
}

.tag-row{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.tag{
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.04em;
    color:var(--paper-dim);
    border:1px solid var(--line-strong);
    border-radius:var(--radius-sm);
    padding:5px 10px;
    transition:border-color 0.2s ease, color 0.2s ease;
}
.portfolio-card:hover .tag{ border-color:var(--signal-soft); }

/* ============================================================
   CERTIFICATIONS & EXPERTISE
   ============================================================ */

.capabilities{ background:var(--ink); }

.cap-group{ margin-bottom:44px; }
.cap-group:last-child{ margin-bottom:0; }

.cap-label{
    font-family:var(--font-mono);
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--paper-faint);
    margin-bottom:18px;
    display:block;
}

.chip-grid{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}

.chip{
    font-family:var(--font-mono);
    font-size:12.5px;
    letter-spacing:0.03em;
    color:var(--paper);
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius-sm);
    padding:10px 16px;
    transition:border-color 0.2s ease, transform 0.2s ease, background 0.2s ease;
}
.chip:hover{
    border-color:var(--signal);
    background:var(--signal-soft);
    transform:translateY(-2px);
}

/* ============================================================
   CONTACT
   ============================================================ */

.contact-section{ background:var(--ink-soft); }

.contact-grid{
    display:flex;
    flex-wrap:wrap;
    gap:48px;
    align-items:flex-end;
    justify-content:space-between;
}

.contact-list{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.contact-row{
    display:flex;
    align-items:baseline;
    gap:14px;
}

.contact-row .label{
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--paper-faint);
    width:88px;
    flex:0 0 auto;
}

.contact-row .value{
    font-family:var(--font-display);
    font-size:18px;
    color:var(--paper);
}
.contact-row a.value:hover{ color:var(--signal); }

/* ============================================================
   FOOTER
   ============================================================ */

footer{
    padding:32px var(--gutter);
    border-top:1px solid var(--line);
    text-align:center;
}

footer p{
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.08em;
    color:var(--paper-faint);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width:980px){
    .hero-content{ flex-direction:column-reverse; text-align:center; padding-bottom:60px; }
    .hero-description{ margin:0 auto; }
    .hero h2{ margin:0 auto 22px; }
    .hero-buttons{ justify-content:center; }
    .hero::after{ display:none; }
    .stats{ grid-template-columns:repeat(2,1fr); }
    .stat-card:nth-child(2){ border-right:none; }
    .stat-card{ border-bottom:1px solid var(--line-strong); }
    .contact-grid{ flex-direction:column; align-items:flex-start; gap:28px; }
}

@media (max-width:768px){
    .nav-links{
        position:absolute;
        top:100%; left:0; right:0;
        background:var(--ink-soft);
        border-bottom:1px solid var(--line);
        flex-direction:column;
        align-items:flex-start;
        gap:18px;
        padding:24px var(--gutter);
        display:none;
    }
    .nav-links.is-open{ display:flex; }
    .nav-cta{ display:none; }
    .nav-links.is-open ~ .nav-cta,
    .nav-links.is-open .nav-cta{ display:inline-flex; }
    .nav-toggle{ display:flex; }
    .section{ padding:72px 6%; }
}

@media (max-width:560px){
    .frame{ width:190px; height:220px; }
    .stats{ grid-template-columns:1fr 1fr; }
}
