*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
body{background:#FDF6EC;color:#3B2F2F;font-family:'Nunito Sans',sans-serif;font-weight:400;font-size:clamp(1rem,1.8vw,1.125rem);line-height:1.72;overflow-x:hidden;letter-spacing:0.01em}

.folio{max-width:720px;margin:0 auto;padding:0 clamp(16px,4vw,32px)}

.folio-section{padding:clamp(4rem,10vh,8rem) 0;position:relative}
.folio--frontispiece{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}

.site-title{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(2.4rem,5vw,4rem);color:#3B2F2F;letter-spacing:0.02em;margin-bottom:2rem}
.subtitle{font-family:'Nunito Sans',sans-serif;font-weight:300;color:#8B7355;margin-top:1.5rem;font-size:clamp(0.95rem,1.5vw,1.1rem)}

.lattice-svg{width:clamp(200px,40vw,300px);height:auto}
.lattice-group{animation:latticePulse 6s ease-in-out infinite alternate}
@keyframes latticePulse{0%{opacity:0.7}100%{opacity:1}}

.section-heading{font-family:'Cormorant Garamond',serif;font-weight:700;font-size:clamp(1.6rem,3.2vw,2.4rem);color:#3B2F2F;margin-bottom:1rem}

.body-text{color:#3B2F2F;max-width:55ch;margin-bottom:1.2em}

.drop-cap{font-family:'Cormorant Garamond',serif;font-weight:700;font-size:3.2em;float:left;line-height:0.8;margin-right:0.08em;color:#C4883A}

/* Illustration Break */
.illustration-break{padding:clamp(2rem,4vh,4rem) 0;max-width:960px;margin:0 auto;text-align:center}
.nanotube-svg{width:100%;max-width:600px;height:auto}
.illustration-label{font-family:'IBM Plex Mono',monospace;font-size:0.8rem;color:#8B7355;letter-spacing:0.04em;display:block;margin-top:0.5rem}

/* Colophon */
.folio--colophon{border-top:1px solid #A3926B;margin-top:2rem}
.colophon-block{text-align:center}
.colophon-title{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.2rem;color:#3B2F2F;margin-bottom:1rem}
.colophon-detail{font-family:'IBM Plex Mono',monospace;font-size:0.8rem;color:#8B7355;margin-bottom:0.3rem;letter-spacing:0.04em}

/* Reveals */
[data-reveal]{opacity:0;transform:translateY(20px);transition:opacity 0.7s cubic-bezier(0.23,1,0.32,1),transform 0.7s cubic-bezier(0.23,1,0.32,1)}
[data-reveal].visible{opacity:1;transform:translateY(0)}

@media(max-width:768px){
  .folio{max-width:none;padding:0 clamp(16px,5vw,24px)}
}
