.simone-book { --s31-muted:#6e7766; }
.s31-section { scroll-margin-top:80px; }
.s31-hero { position:relative; isolation:isolate; min-height:730px; height:calc(100svh - var(--header)); max-height:1120px; }
.s31-portrait { position:absolute; z-index:-1; left:41%; right:0; top:0; bottom:60px; overflow:hidden; }
.s31-portrait .o22-photo { height:100%; background:var(--paper); }
.s31-portrait img { width:100%; height:100%; object-fit:cover; object-position:50% 0%; }
.s31-portrait::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,var(--paper) 0%,#eeece3d4 5%,#eeece334 23%,transparent 42%),linear-gradient(0deg,var(--paper),transparent 18%); }
.s31-portrait .o22-zoom { z-index:2; right:4vw; bottom:70px; }
.s31-portrait-credit { position:absolute; z-index:2; bottom:22px; right:var(--gutter); font-size:9px; color:#334031; background:#eeece3da; padding:4px 10px; }
.s31-portrait-credit a { text-decoration:underline; text-underline-offset:3px; }
.s31-hero-copy { position:relative; width:56%; height:calc(100% - 60px); min-height:670px; padding:42px 0 44px var(--gutter); display:flex; flex-direction:column; justify-content:space-between; align-items:flex-start; pointer-events:none; }
.s31-hero-copy a { pointer-events:auto; }
.s31-hero h1 { font-size:clamp(100px,11.2vw,180px); line-height:.91; letter-spacing:-.068em; margin:24px 0 28px; }
.s31-hero h1 span { color:#69775e; }
.s31-role { font-size:20px; margin-bottom:14px; letter-spacing:-.035em; }
.s31-hero-intro { font-size:14px; line-height:1.65; color:#5f6a57; }
.s31-down { display:flex; align-items:center; gap:36px; border-bottom:1px solid #aeb5a2; min-height:55px; font-size:11px; }
.s31-down i { font-style:normal; font-size:24px; transition:transform .3s; }
.s31-down:hover i { transform:translateY(4px); }
.s31-hero-tail { position:absolute; inset:auto var(--gutter) 0; display:flex; justify-content:space-between; align-items:center; height:60px; border-top:1px solid #adb69f; font-size:10px; gap:25px; }
.s31-hero-tail i { font-style:normal; color:#6e7766; margin-left:16px; }
.s31-rule { border-top:1px solid #aeb79f; padding-top:18px; display:flex; justify-content:space-between; gap:30px; font-size:10px; }
.s31-rule > span:last-child { color:var(--s31-muted); }
.s31-vision { padding:105px var(--gutter) 120px; }
.s31-vision-copy { display:grid; grid-template-columns:1.25fr 1fr; gap:8vw; margin:66px 0 86px; }
.s31-vision h2 { font-size:clamp(43px,5.5vw,88px); line-height:1.05; }
.s31-vision h2 span { color:#7a846d; }
.s31-vision blockquote { margin:2px 0 34px; font-size:24px; letter-spacing:-.03em; line-height:1.4; }
.s31-vision cite { display:block; font-style:normal; font-size:10px; letter-spacing:.06em; margin-top:16px; color:#66745a; text-transform:uppercase; }
.s31-vision-copy p { max-width:440px; margin:0 0 18px; font-size:14px; color:#5c6753; line-height:1.8; }
.s31-wide-photo { width:82%; margin-left:auto; }
.s31-wide-photo img { aspect-ratio:16/9; object-fit:cover; }
.s31-wide-photo figcaption { display:flex; justify-content:space-between; gap:22px; padding-top:14px; color:#637058; font-size:10px; }
.s31-gesture { background:#1b251f; color:#eeece3; }
.s31-forge { position:relative; min-height:660px; height:82svh; max-height:1000px; overflow:hidden; isolation:isolate; }
.s31-forge-image { position:absolute; inset:0; z-index:-1; }
.s31-forge-image .o22-photo { width:100%; height:100%; background:#1b251f; }
.s31-forge-image img { width:100%; height:100%; object-fit:cover; object-position:58% 50%; transform:scale(1.07) translateY(var(--forge-y,0px)); }
.s31-forge::after { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,#122018e8, #13211988 40%,#0f1d1110 78%),linear-gradient(0deg,#1b251f,transparent 24%); }
.s31-forge-image .o22-zoom { right:var(--gutter); bottom:64px; }
.s31-forge-copy { position:relative; height:100%; display:flex; flex-direction:column; justify-content:center; padding:62px var(--gutter); pointer-events:none; }
.s31-forge h2 { font-size:clamp(75px,10.5vw,160px); line-height:.96; margin:42px 0 38px; }
.s31-forge h2 span { color:#d2ceb9; }
.s31-forge-copy p { max-width:310px; color:#dadbd0; font-size:14px; }
.s31-forge-note { position:absolute; left:var(--gutter); bottom:24px; color:#d0d3c7; font-size:9px; pointer-events:none; }
.s31-process { padding:60px var(--gutter) 95px; }
.s31-process .s31-rule { border-color:#71816b66; }
.s31-process .s31-rule > span:last-child { color:#a9b69d; }
.s31-process-grid { display:grid; grid-template-columns:1fr 1fr 1.18fr; gap:4vw; margin-top:50px; align-items:start; }
.s31-process-card:nth-child(2) { padding-top:80px; }
.s31-process-card:nth-child(3) { padding-top:160px; }
.s31-process-card figcaption { font-size:9px; color:#a7b298; padding-top:12px; }
.s31-process-card figcaption a { text-decoration:underline; text-underline-offset:3px; }
.s31-process-card h3 { font-size:clamp(27px,3vw,45px); margin-top:26px; }
.s31-process-card h3 > span { display:block; font-size:10px; color:#9aa88a; letter-spacing:0; margin-bottom:17px; }
.s31-process-card p { font-size:12px; color:#b9c2af; max-width:270px; margin-top:15px; }
.s31-process-note { padding-top:42px; margin-top:40px; border-top:1px solid #71816b66; font-size:10px; color:#a4b397; }
.s31-journey { padding:104px var(--gutter) 110px; }
.s31-timeline { display:grid; grid-template-columns:1fr 1fr; gap:10vw; margin-top:64px; }
.s31-timeline-sticky { align-self:start; position:sticky; top:calc(var(--header) + 100px); }
.s31-timeline h2 { font-size:clamp(50px,5.8vw,90px); }
.s31-timeline-sticky > p { max-width:310px; margin:30px 0 12px; font-size:13px; color:#616d57; }
.s31-year { margin-top:45px; }
.s31-year > span { display:block; font-size:clamp(100px,12vw,190px); font-weight:300; line-height:1; letter-spacing:-.075em; color:#8d987e; font-variant-numeric:tabular-nums; }
.s31-year small { display:block; text-transform:uppercase; font-size:9px; letter-spacing:.13em; margin-top:17px; color:#6e7d5e; }
.s31-timeline-sticky .o22-text-link { margin-top:32px; }
.s31-milestones { list-style:none; padding:0 0 0 34px; margin:0; border-left:1px solid #adb79f; }
.s31-milestone { position:relative; padding:48px 0 55px; border-bottom:1px solid #b4bca9; min-height:285px; }
.s31-milestone:first-child { padding-top:10px; }
.s31-milestone:last-child { border-bottom:0; }
.s31-milestone::before { content:''; position:absolute; left:-39px; top:52px; width:9px; height:9px; border-radius:50%; background:#a0aa94; border:2px solid var(--paper); box-shadow:0 0 0 1px #a0aa94; transition:background .35s; }
.s31-milestone:first-child::before { top:14px; }
.s31-milestone.is-active::before { background:#293d2b; box-shadow:0 0 0 3px #8a977b66; }
.s31-milestone-date { display:block; font-size:12px; color:#6c785f; margin-bottom:23px; letter-spacing:.03em; }
.s31-milestone h3 { font-size:clamp(32px,3.2vw,48px); line-height:1.07; }
.s31-milestone p { margin-top:22px; max-width:480px; color:#5e6b54; font-size:13px; }
.s31-milestone-tag { display:block; margin-top:22px; text-transform:uppercase; letter-spacing:.07em; font-size:9px; color:#647657; }
.s31-archive { margin-top:60px; border-top:1px solid #a8b39b; border-bottom:1px solid #a8b39b; scroll-margin-top:90px; }
.s31-archive summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; padding:30px 0; font-size:26px; letter-spacing:-.035em; }
.s31-archive summary::-webkit-details-marker { display:none; }
.s31-archive summary small { display:block; font-size:11px; color:#6b785f; margin-top:8px; letter-spacing:0; }
.s31-archive summary i { font-style:normal; font-size:30px; transition:transform .25s; }
.s31-archive[open] summary i { transform:rotate(45deg); }
.s31-archive summary:focus-visible { outline:2px solid #aa8650; outline-offset:7px; }
.s31-archive ol { list-style:none; padding:0; margin:10px 0 35px; display:grid; grid-template-columns:1fr 1fr; gap:0 6vw; }
.s31-archive li { display:grid; grid-template-columns:95px 1fr; gap:20px; border-top:1px solid #b6bea9; padding:22px 0; font-size:12px; }
.s31-archive li > span { color:#647357; font-size:11px; }
.s31-school { background:#daddce; padding:78px var(--gutter) 100px; }
.s31-school h2 { font-size:clamp(68px,9.8vw,155px); margin:60px 0 65px; }
.s31-school h2 span { color:#7a886b; }
.s31-school-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:9vw; align-items:center; }
.s31-school-layout figure { margin:0; }
.s31-school-layout img { aspect-ratio:3/2; object-fit:cover; }
.s31-school-layout figcaption { padding-top:13px; color:#59674e; font-size:10px; }
.s31-school-layout h3 { font-size:clamp(28px,3.2vw,49px); line-height:1.1; margin-bottom:29px; }
.s31-school-layout p { font-size:13px; line-height:1.85; margin-top:18px; color:#536249; max-width:445px; }
.s31-school-cta { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:15px 0; font-size:13px; border-bottom:1px solid #7c8c6b; max-width:330px; margin-top:26px; }
.s31-school-cta span { font-size:25px; }
.s31-works { display:grid; grid-template-columns:1fr 1fr; gap:9vw; padding:105px var(--gutter); }
.s31-works h2 { font-size:clamp(49px,5.8vw,90px); margin:27px 0 30px; }
.s31-works p { font-size:13px; max-width:300px; color:#647159; }
.s31-works nav { display:grid; grid-template-columns:1fr 1fr; column-gap:3vw; align-content:center; }
.s31-works nav a { font-size:clamp(20px,2.2vw,32px); letter-spacing:-.04em; border-bottom:1px solid #acb5a0; display:flex; align-items:center; justify-content:space-between; gap:15px; padding:25px 0; }
.s31-works nav a span { font-size:20px; color:#697d56; transition:transform .3s; }
.s31-works nav a:hover span { transform:translate(3px,-3px); }
@media (max-width:1050px) {
  .s31-hero { min-height:700px; }
  .s31-hero-copy { min-height:640px; }
  .s31-hero h1 { font-size:11.5vw; }
  .s31-timeline { gap:6vw; }
  .s31-timeline-sticky { top:calc(var(--header) + 88px); }
  .s31-school-layout { gap:6vw; }
  .s31-archive li { grid-template-columns:75px 1fr; gap:15px; }
  .s31-process-grid { gap:3vw; }
}
@media (max-width:760px) {
  .s31-section { scroll-margin-top:70px; }
  .s31-hero { height:auto; min-height:0; max-height:none; padding-bottom:0; }
  .s31-hero-copy { position:relative; width:100%; min-height:0; height:auto; padding:30px var(--gutter) 0; }
  .s31-hero-copy .eyebrow { font-size:9px; }
  .s31-hero h1 { font-size:clamp(70px,19vw,138px); margin:29px 0 19px; line-height:.94; }
  .s31-hero h1 br { display:none; }
  .s31-hero h1 span { display:block; }
  .s31-role { font-size:16px; margin:0 0 12px; }
  .s31-hero-intro { font-size:12px; }
  .s31-portrait { position:relative; inset:auto; height:112vw; max-height:660px; margin:-10px 0 0; z-index:auto; }
  .s31-portrait img { object-position:50% 25%; }
  .s31-portrait::after { background:linear-gradient(0deg,var(--paper),transparent 20%),linear-gradient(180deg,#eeece3b3,transparent 15%); }
  .s31-hero { display:flex; flex-direction:column; }
  .s31-hero-copy { order:0; z-index:2; }
  .s31-portrait { order:1; }
  .s31-portrait .o22-zoom { bottom:65px; right:var(--gutter); }
  .s31-portrait-credit { right:var(--gutter); bottom:22px; font-size:8px; }
  .s31-down { font-size:10px; min-height:43px; margin-top:20px; gap:45px; }
  .s31-hero-tail { position:static; order:2; margin:0 var(--gutter); height:auto; padding:17px 0; font-size:8px; align-items:flex-start; gap:20px; }
  .s31-hero-tail > span { max-width:55%; }
  .s31-hero-tail > span:last-child { text-align:right; }
  .s31-hero-tail i { display:block; margin:3px 0 0; }
  .simone-book .o22-index { height:57px; padding:0 var(--gutter); overflow-x:auto; }
  .simone-book .o22-index-name { display:none; }
  .simone-book .o22-index > div { gap:0; justify-content:space-between; width:100%; min-width:275px; }
  .simone-book .o22-index [data-chapter-link] { font-size:10px; }
  .s31-rule { font-size:9px; gap:20px; }
  .s31-rule > span:last-child { display:none; }
  .s31-vision { padding:60px var(--gutter) 65px; }
  .s31-vision-copy { display:block; margin:40px 0; }
  .s31-vision h2 { font-size:clamp(40px,10.5vw,67px); }
  .s31-vision blockquote { font-size:22px; margin:38px 0 26px; }
  .s31-vision-copy p { font-size:13px; }
  .s31-wide-photo { width:100%; }
  .s31-wide-photo img { aspect-ratio:4/3; object-position:39% 50%; }
  .s31-wide-photo figcaption { flex-direction:column; gap:3px; font-size:9px; }
  .s31-forge { min-height:610px; height:78svh; max-height:850px; }
  .s31-forge-copy { justify-content:end; padding:55px var(--gutter) 90px; }
  .s31-forge h2 { font-size:17vw; margin:24px 0; }
  .s31-forge-copy p { max-width:240px; font-size:12px; }
  .s31-forge-image img { object-position:64% 50%; transform:none; }
  .s31-forge::after { background:linear-gradient(0deg,#1b251ff7,#14221b91 40%,#15231b33 78%); }
  .s31-forge-note { right:var(--gutter); font-size:8px; bottom:22px; max-width:230px; }
  .s31-forge-image .o22-zoom { bottom:65px; width:40px; height:40px; }
  .s31-process { padding:30px var(--gutter) 55px; }
  .s31-process-grid { grid-template-columns:1fr; gap:45px; margin-top:35px; }
  .s31-process-card { width:85%; }
  .s31-process-card:nth-child(2) { padding-top:0; margin-left:auto; }
  .s31-process-card:nth-child(3) { padding-top:0; width:100%; }
  .s31-process-card h3 { font-size:35px; margin-top:22px; }
  .s31-process-card h3 > span { margin-bottom:12px; }
  .s31-process-card p { font-size:12px; }
  .s31-process-note { padding-top:24px; margin-top:34px; font-size:9px; }
  .s31-journey { padding:62px var(--gutter); }
  .s31-timeline { display:block; margin-top:40px; }
  .s31-timeline-sticky { position:static; }
  .s31-timeline h2 { font-size:14vw; }
  .s31-timeline-sticky > p { font-size:13px; margin:25px 0 5px; }
  .s31-year { display:none; }
  .s31-timeline-sticky .o22-text-link { margin-top:16px; max-width:none; }
  .s31-milestones { margin:45px 0 0 4px; padding-left:25px; }
  .s31-milestone { padding:33px 0; min-height:0; }
  .s31-milestone::before { left:-30px; top:37px; }
  .s31-milestone h3 { font-size:34px; }
  .s31-milestone-date { margin-bottom:17px; font-size:11px; }
  .s31-milestone p { font-size:12px; margin-top:18px; }
  .s31-milestone-tag { font-size:8px; }
  .s31-archive { margin-top:35px; scroll-margin-top:70px; }
  .s31-archive summary { padding:24px 0; font-size:22px; }
  .s31-archive summary small { font-size:10px; }
  .s31-archive ol { display:block; }
  .s31-archive li { grid-template-columns:72px 1fr; font-size:11px; gap:15px; padding:20px 0; }
  .s31-archive li > span { font-size:10px; }
  .s31-school { padding:50px var(--gutter) 60px; }
  .s31-school h2 { font-size:16vw; margin:38px 0 36px; }
  .s31-school-layout { display:block; }
  .s31-school-layout h3 { margin:35px 0 23px; font-size:32px; }
  .s31-school-layout p { font-size:13px; }
  .s31-school-cta { max-width:none; }
  .s31-works { display:block; padding:60px var(--gutter); }
  .s31-works h2 { font-size:14vw; margin:22px 0; }
  .s31-works nav { margin-top:30px; column-gap:26px; }
  .s31-works nav a { font-size:23px; padding:20px 0; }
}
@media (prefers-reduced-motion:reduce) {
  .s31-forge-image img { transform:none; }
  .s31-milestone::before,.s31-down i,.s31-works nav a span,.s31-archive summary i { transition:none; }
}
