:root{
  --paper:      #FFFFFF;
  --paper-2:    #F5F5F2;
  --ink:        #17201B;
  --ink-soft:   #3A4038;
  --voyage:     #2F3291;  
  --voyage-2:   #202363;
  --sand:       #2F3291;   
  --sand-soft:  #8A8DE0;  
  --line:       rgba(23,32,27,.14);
  --line-onink: rgba(255,255,255,.18);
  --radius:     2px;
  --maxw:       1280px;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
    background:var(--paper);
    color:var(--ink);
    font-family:'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size:17px;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
}
.mono{
    font-family:'Manrope', sans-serif;
    letter-spacing:.04em;
}
h1,h2,h3{
    font-family:'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
    font-weight:700;
    color:inherit;
    letter-spacing:-.02em;
}
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--sand); color:var(--ink); }
.container{ max-width:var(--maxw); }
a:focus-visible, button:focus-visible{
      outline:2px solid var(--sand);
  outline-offset:3px;
}
.route-line{
    position:fixed;
    top:56px;
    left:0;
    width:100%;
    height:34px;
    z-index:5;
    pointer-events:none;
    opacity:.55;
}
.route-line path{
    fill:none;
    stroke:var(--sand);
    stroke-width:1.4;
    stroke-dasharray:6 7;
    stroke-linecap:round;
    transition:stroke .4s ease;
}
.section-ink ~ .route-line,
body.on-dark .route-line path{ stroke:var(--sand-soft); }
.navbar-site{
    background:rgba(255,255,255,.97);
    backdrop-filter:saturate(140%) blur(8px);
    border-bottom:none;
    padding:.75rem 0;
    transition:background .3s ease, border-color .3s ease;
}
.navbar-site.is-dark{
    background:rgba(255,255,255,.97);
    border-bottom:none;
}
.navbar-site .container{
    padding-left:1.5rem;
    padding-right:1.5rem;
}
.navbar-brand{
    display:flex;
    align-items:baseline;
    margin-left:0;
    margin-right:1.5rem;
}
.brand-signature{
    font-family:'Playfair Display', Georgia, serif;
    font-style:italic;
    font-weight:600;
    font-size:1.25rem;
    color:var(--ink);
    letter-spacing:.01em;
    padding-left:.15rem;
}
.navbar-nav .nav-link{
    font-size:.87rem;
    font-weight:700;
    color:var(--ink) !important;
    padding:.5rem .85rem !important;
    position:relative;
}
.navbar-nav .nav-link:hover{ color:var(--sand) !important; }
.lang-toggle{
    background:transparent;
    border:1px solid var(--line);
    border-radius:20px;
    padding:.3rem .3rem;
    margin-left:1rem;
    display:inline-flex;
    align-items:center;
    cursor:pointer;
    font-family:'Manrope', sans-serif;
    font-size:.72rem;
    letter-spacing:.06em;
}
.lang-opt{
    padding:.2rem .55rem;
    border-radius:14px;
    color:var(--ink-soft);
    transition:background .2s ease, color .2s ease;
}
.lang-opt.is-active{
    background:var(--ink);
    color:var(--paper);
}
.lang-sep{ color:var(--line); padding:0 .1rem; }
.navbar-toggler{
    border:1.5px solid var(--ink);
    border-radius:10px;
    padding:.55rem .6rem;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:42px;
    height:42px;
    background:transparent;
    transition:background .2s ease, transform .15s ease;
}
.navbar-toggler:hover{ background:rgba(47,50,145,.06); }
.navbar-toggler:active{ transform:scale(.94); }
.navbar-toggler:focus{ outline:none; box-shadow:0 0 0 3px rgba(47,50,145,.18); }
.toggler-bar{
    display:block;
    height:2px;
    width:100%;
    background:var(--ink);
    border-radius:2px;
    transition:transform .25s ease, opacity .2s ease;
}
.navbar-toggler[aria-expanded="true"] .toggler-bar:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.navbar-toggler[aria-expanded="true"] .toggler-bar:nth-child(2){ opacity:0; }
.navbar-toggler[aria-expanded="true"] .toggler-bar:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.hero{
    padding:7.2rem 0 4rem;
    position:relative;
}
.eyebrow{
    font-size:.75rem;
    color:var(--sand);
    font-weight:500;
    margin-bottom:1.4rem;
}
.hero-title{
    font-size:clamp(2.4rem, 5.4vw, 4rem);
    line-height:1.06;
    margin-bottom:1.6rem;
}
.hero-title em{
    font-style:italic;
    color:var(--voyage);
}
.hero-lede{
    max-width:640px;
    font-size:1.08rem;
    color:var(--ink-soft);
    margin-bottom:2.2rem;
}
.hero-cta{ display:flex; gap:1rem; flex-wrap:wrap; }
.hero-photo{
    position:relative;
    border-radius:var(--radius);
    overflow:hidden;
    aspect-ratio:4 / 5;
    background:var(--voyage-2);
    box-shadow:14px 14px 0 var(--sand);
}
.hero-photo img{
    width:100%; height:100%;
    object-fit:cover;
    display:block;
    filter:grayscale(45%) contrast(1.05);
}
.hero-photo-tag{
    position:absolute;
    left:1rem; bottom:1rem;
    background:var(--ink);
    color:var(--paper);
    font-size:.68rem;
    padding:.35rem .7rem;
    border-radius:20px;
}
.btn-sand{
    display:inline-block;
    margin-top:1.8rem;
    background:transparent;
    color:var(--paper) !important;
    border:1px solid var(--sand);
    border-radius:20px;
    padding:.6rem 1.3rem;
    font-size:.86rem;
    font-weight:600;
    transition:background .18s ease, color .18s ease;
}
.section-ink .btn-sand{ color:var(--paper) !important; }
.btn-sand:hover{ background:var(--sand); color:var(--voyage-2) !important; }
.btn-ink{
    background:var(--ink);
    color:var(--paper) !important;
     border-radius:var(--radius);
    padding:.75rem 1.5rem;
    font-weight:500;
    font-size:.92rem;
    border:1px solid var(--ink);
    transition:transform .18s ease, background .18s ease;
}
.btn-ink:hover{ background:var(--voyage); border-color:var(--voyage); transform:translateY(-2px); }
.btn-outline-ink{
    background:transparent;
    color:var(--ink) !important;
    border:1px solid var(--ink);
    border-radius:var(--radius);
    padding:.75rem 1.5rem;
    font-weight:500;
    font-size:.92rem;
    transition:transform .18s ease, background .18s ease, color .18s ease;
}
.btn-outline-ink:hover{ background:var(--ink); color:var(--paper) !important; transform:translateY(-2px); }
.hero-manifest{
    margin-top:4rem;
    padding-top:1.6rem;
    border-top:1px solid var(--line);
    font-size:.72rem;
    color:var(--ink-soft);
    max-width:var(--maxw);
    margin-left:auto; margin-right:auto;
    padding-left:15px; padding-right:15px;
}
.section{
    padding:6.5rem 0;
    border-bottom:1px solid var(--line);
}
.section-ink{
    background:var(--voyage);
    color:var(--paper);
    border-bottom:1px solid var(--line-onink);
}
.section-ink .section-label{ color:var(--sand-soft); }
.section-ink .body-text{ color:rgba(255,255,255,.82); }
.section-ink .small-note{ color:var(--sand-soft); }
.section-label{
    font-size:.80rem;
    color:var(--voyage);
    margin-bottom:1rem;
    font-weight:800;
}
.section-title{
    font-size:clamp(1.4rem, 3vw, 2.5rem);
    line-height:1.18;
    font-weight:800;
    margin-bottom:1.5rem;
    max-width:16ch;
}
.body-text{
    color:#000;
    margin-bottom:1.25rem;
    font-size:0.95rem;
    font-weight:500;
}
.small-note{ font-size:.85rem; color:var(--voyage); margin-top:1.5rem; }
.pull-quote{
    font-family:'Manrope', sans-serif;
    font-style:italic;
    font-size:1.25rem;
    color:var(--voyage);
    border-left:2px solid var(--sand);
    padding-left:1.2rem;
    margin-top:2rem;
}
.expertise-grid{ row-gap:2.5rem; }
.expertise-item{
    padding-right:1.5rem;
}
.expertise-code{
    display:inline-block;
    font-size:.8rem;
    color:var(--sand);
    font-weight:600;
    border:1px solid var(--sand);
    border-radius:20px;
    padding:.15rem .55rem;
    margin-bottom:1rem;
}
.expertise-item h3{
    font-size:1.09rem;
    font-weight:700;
    margin-bottom:.6rem;
}
.expertise-item p{
    color:#000;
    font-size:.95rem;
    font-weight:500;
    line-height:1.65;
    margin:0;
}
.expertise-wide{
    margin-top:1rem;
    padding-top:2.5rem;
    border-top:1px solid var(--line);
}
.topic-list{
    list-style:none;
    margin:0; padding:0;
}
.topic-list li{
    font-family:'Manrope', sans-serif;
    font-size:1.3rem;
    padding:1.1rem 0;
    border-bottom:1px solid var(--line-onink);
}
.topic-list li:first-child{ padding-top:0; }
.topic-list li::before{
    content:"→ ";
    color:var(--sand-soft);
    margin-right:.4rem;
}
.accordion-list{
    border-top:1px solid var(--line-onink);
}
.accordion-item{
    border-bottom:1px solid var(--line-onink);
}
.accordion-trigger{
    width:100%;
    display:flex;
    align-items:center;
    gap:1.1rem;
    background:none;
    border:none;
    padding:1.5rem 0;
    text-align:left;
    cursor:pointer;
    color:var(--paper);
}
.accordion-num{
    font-size:.85rem;
    color:#FFF;
    font-weight:600;
    flex:0 0 auto;
}
.accordion-q{
    flex:1 1 auto;
    font-size:1.15rem;
    font-weight:600;
    letter-spacing:-.01em;
}
.accordion-icon{
    position:relative;
    flex:0 0 auto;
    width:20px; height:20px;
}
.accordion-icon::before,
.accordion-icon::after{
    content:"";
    position:absolute;
    top:50%; left:50%;
    background:var(--sand-soft);
    transform:translate(-50%,-50%);
    transition:transform .25s ease, opacity .25s ease;
}
.accordion-icon::before{ width:14px; height:1.5px; }
.accordion-icon::after{ width:1.5px; height:14px; }
.accordion-item.is-open .accordion-icon::after{ transform:translate(-50%,-50%) rotate(90deg); opacity:0; }
.accordion-panel{
    max-height:0;
    overflow:hidden;
    transition:max-height .35s ease, opacity .3s ease;
    opacity:0;
}
.accordion-panel p{
    color:#FFF;
    font-size:0.95rem;
    font-weight:500;
    padding-bottom:1.6rem;
    padding-right:2.5rem;
    margin:0;
}
.accordion-item.is-open .accordion-panel{
    opacity:1;
}
.pub-item{
    padding:1.6rem 0;
    border-top:1px solid var(--line);
}
.pub-item:last-child{ border-bottom:1px solid var(--line); }
.pub-tag{
    display:block;
    font-size:.8rem;
    color:var(--sand);
    font-weight:600;
    margin-bottom:.6rem;
}
.pub-item p{ color:#000; font-size:.90rem; margin:0;font-weight:500; }
.venture-card{
    background:var(--voyage-2);
    border-radius:var(--radius);
    padding:2.4rem;
}
.venture-head{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    flex-wrap:wrap;
    gap:.5rem;
    margin-bottom:.4rem;
}
.venture-head h3{ font-size:1.5rem; margin:0; }
.venture-head span{ font-size:.7rem; color:var(--sand-soft); }
.venture-tagline{
    font-family:'Manrope', sans-serif;
    font-style:italic;
    color:#FFF;
    font-weight:600;
    font-size:0.9rem;
    margin-bottom:1.4rem;
}
.ticket{
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--paper-2);
    overflow:hidden;
}
.ticket-row.ticket-head{
    display:flex;
    justify-content:space-between;
    padding:.9rem 1.5rem;
    background:var(--ink);
    color:var(--paper);
    font-size:.7rem;
}
.ticket-body{ padding:1.8rem 1.5rem 0; }
.contact-topics{
    list-style:none;
    margin:0; padding:0;
}
.contact-topics li{
    font-size:.95rem;
    padding:.6rem 0;
    border-bottom:1px dashed var(--line);
    color:var(--ink-soft);
}
.contact-topics li:last-child{ border-bottom:none; }
.ticket-stub{
    margin-top:.5rem;
    border-top:2px dashed var(--line);
    padding:1.5rem;
    display:flex;
    flex-wrap:wrap;
    gap:1.2rem 2rem;
    position:relative;
}
.ticket-stub::before,
.ticket-stub::after{
    content:"";
    position:absolute;
    top:-9px;
    width:18px; height:18px;
    border-radius:50%;
    background:var(--paper);
    border:1px solid var(--line);
}
.ticket-stub::before{ left:-9px; }
.ticket-stub::after{ right:-9px; }
.ticket-link{
    font-family:'Manrope', sans-serif;
    font-size:.85rem;
    font-weight:500;
    color:var(--voyage);
    border-bottom:1px solid var(--voyage);
    padding-bottom:2px;
}
.ticket-link:hover{ color:var(--sand); border-color:var(--sand); }
.contact-card{
    position:relative;
    background:#2F3291;
    border-radius:20px;
    padding:2.8rem 2.6rem;
    overflow:hidden;
    isolation:isolate;
}
.contact-card-glow{
    position:absolute;
    top:-40%; right:-25%;
    width:70%; height:140%;
    background:radial-gradient(circle, rgba(255,255,255,.08) 0%, rgba(255,255,255,0) 70%);
    z-index:-1;
    pointer-events:none;
}
.contact-card-eyebrow{
    display:inline-block;
    font-size:.68rem;
    color:#FFF;
    font-weight:700;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.16);
    border-radius:20px;
    padding:.35rem .8rem;
    margin-bottom:1.6rem;
}
.contact-main-link{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    color:var(--paper) !important;
    font-family:'Manrope', sans-serif;
    font-weight:700;
    font-size:clamp(1.15rem, 2.4vw, 1.55rem);
    letter-spacing:-.01em;
    padding-bottom:1.6rem;
    margin-bottom:1.8rem;
    border-bottom:1px solid rgba(255,255,255,.16);
    transition:gap .2s ease, color .2s ease;
}
.contact-main-link:hover{ color:#FFF !important; gap:1.4rem; }
.contact-arrow{
    flex:0 0 auto;
    font-size:1.2rem;
    color:var(--sand-soft);
    transition:transform .2s ease;
}
.contact-main-link:hover .contact-arrow{ transform:translate(3px,-3px); }
.contact-chips{
    display:flex;
    flex-wrap:wrap;
    gap:.6rem;
    margin-bottom:2.2rem;
}
.chip{
    font-size:.82rem;
    font-weight:700;
    color:#FFF;
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.14);
    border-radius:20px;
    padding:.5rem 1rem;
    transition:background .2s ease, border-color .2s ease;
}
.chip:hover{ background:rgba(47,50,145,.18); border-color:var(--sand); }
.contact-linkedin{
    display:inline-flex;
    align-items:center;
    gap:.7rem;
    background:var(--sand);
    color:#FFF !important;
    font-weight:700;
    font-size:.92rem;
    border-radius:14px;
    padding:.9rem 1.3rem;
    transition:transform .2s ease, background .2s ease;
}
.contact-linkedin:hover{ background:var(--sand-soft); transform:translateY(-2px); }
.contact-linkedin .contact-arrow{ color:#FFF; }
.li-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px; height:22px;
    background:var(--voyage-2);
    color:#FFF;
    font-size:.72rem;
    font-weight:800;
    border-radius:5px;
}

.talk-grid{ row-gap:2.5rem; }
.talk-item{
    padding-left:1.2rem;
    border-left:2px solid var(--sand);
}
.talk-item h3{ font-size:1.1rem;font-weight:700; margin-bottom:.5rem; }
.talk-item p{ color:#000; font-size:.92rem; margin:0;font-weight:500; }
.site-footer{
    padding:2.2rem 0;
    background:#2F3291;
    color:#FFFFFF;
}
.site-footer .mono{ font-size:13px;font-weight:600; color:#FFFFFF; }
.footer-tagline{ margin-top:.4rem;font-weight:600; color:rgba(255,255,255,.85); }
@media (max-width: 991.98px){
    .route-line{ top:60px; }
    .hero{ padding-top:6.5rem; }
    .navbar-collapse{
        background:var(--paper);
        margin-top:1rem;
        padding:1rem 0;
        border-top:1px solid var(--line);
    }
    .lang-toggle{ margin:1rem 0 0; }
    .section-title{ max-width:none; }
    .expertise-item{ padding-right:0; }
    .hero-photo{ margin-top:2.5rem; max-width:420px; box-shadow:9px 9px 0 var(--sand); }
}
@media (max-width: 575.98px){
    body{ font-size:16px; }
    .hero{ padding:7rem 0 3.5rem; }
    .section{ padding:4rem 0; }
    .venture-card{ padding:1.6rem; }
    .ticket-body{ padding:1.4rem 1.1rem 0; }
    .ticket-stub{ padding:1.1rem; }
    .accordion-q{ font-size:1rem; }
    .accordion-panel p{ padding-right:0; }
    .contact-card{ padding:2rem 1.5rem; border-radius:16px; }
    .contact-main-link{ font-size:1.1rem; }
}
@media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    .btn-ink, .btn-outline-ink{ transition:none; }
}