.ts-project-ledger {
    --ledger-ink: #20231f;
    --ledger-green: #3e6250;
    --ledger-muted: #64705b;
    --ledger-line: #c7cfc0;
    color: var(--ledger-ink);
}

.ts-project-file { padding: 0 0 2.5rem; margin-top: clamp(3rem, 5vw, 5rem); position: relative; scroll-margin-top: 100px; }
.ts-project-file:first-child { margin-top: 0; }
.ts-project-file__header { display: grid; grid-template-columns: 95px minmax(0, 1fr) auto; gap: 1.6rem; align-items: center; border-top: 1px solid #53674c; border-bottom: 1px solid var(--ledger-line); padding-block: 1.1rem; }
.ts-project-file__number { font-family: Georgia, "Times New Roman", serif; font-size: 5.2rem; font-weight: 400; letter-spacing: -.08em; line-height: 1; color: var(--ledger-green); }
.ts-project-file__header p { font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; font-size: .64rem; letter-spacing: .09em; margin: 0 0 .4rem; color: #63765a; }
.ts-project-file__header h3 { font-size: clamp(1.6rem, 2.65vw, 2.5rem); font-weight: 580; line-height: 1.4; letter-spacing: -.045em; margin: 0; }
.ts-project-file__index { font-size: .7rem; writing-mode: vertical-rl; letter-spacing: .08em; color: var(--ledger-muted); }
.ts-project-file__body { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(0, .82fr); align-items: start; gap: clamp(2rem, 5vw, 4.8rem); padding: 2.7rem 1rem 2.4rem; }
.ts-project-file__copy { padding-top: .3rem; }
.ts-project-file__summary { color: #505e49; font-size: .97rem; line-height: 1.95; max-width: 470px; margin: 0; }
.ts-project-print { background: #fffdf6; margin: 0; padding: .7rem .7rem .5rem; box-shadow: 3px 7px 17px rgba(36, 45, 30, .09), 0 0 0 1px rgba(80, 97, 64, .14); position: relative; }
.ts-project-print > a { display: block; overflow: hidden; }
.ts-project-print img { width: 100%; height: auto; aspect-ratio: 1.55; object-fit: cover; object-position: top; display: block; transition: transform .35s ease; }
.ts-project-print > a:hover img { transform: scale(1.018); }
.ts-project-print figcaption { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .3rem 1rem; font-size: .62rem; color: #6b765e; padding: .65rem .15rem .15rem; }
.ts-project-print figcaption > span:first-child { font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; font-size: .59rem; letter-spacing: .03em; }
.ts-project-print figcaption a { text-decoration: none; }
.ts-project-print--site { transform: rotate(-1.25deg); margin: .4rem 0 1rem; }
.ts-project-print--site::before { content: ""; background: rgba(190, 205, 169, .42); width: 65px; height: 22px; position: absolute; top: -10px; right: 17%; transform: rotate(3deg); pointer-events: none; }
.ts-project-margin { border-left: 2px solid #7c9470; padding-left: 1.1rem; margin: 1.7rem 0 2rem 1.1rem; transform: rotate(-1.5deg); }
.ts-project-margin > span { font-size: .62rem; color: #738466; letter-spacing: .1em; }
.ts-project-margin p { font-size: 1.12rem; line-height: 1.8; color: #405739; margin: .45rem 0 0; font-family: Georgia, "Songti SC", "Noto Serif CJK SC", serif; }
.ts-project-record { display: grid; grid-template-columns: minmax(0, 1fr) 16px; gap: .4rem 1rem; border-top: 1px dashed #aab99b; padding-top: .9rem; text-decoration: none; }
.ts-project-record > span { grid-column: 1; font-size: .64rem; color: #748567; }
.ts-project-record strong { grid-column: 1; font-size: .9rem; font-weight: 550; line-height: 1.6; color: #3e6250; }
.ts-project-record i { grid-column: 2; grid-row: 1 / 3; font-style: normal; align-self: end; color: #3e6250; }
.ts-project-file__links { display: flex; flex-wrap: wrap; gap: .9rem 1.4rem; margin-top: 1.6rem; }
.ts-project-file__links .ts-text-link { font-size: .8rem; }
.ts-project-file--axiom .ts-project-file__body { grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: 3.5rem; padding-block: 2.7rem 3.2rem; }
.ts-project-print-stack { position: relative; min-width: 0; padding: .75rem 0 4.5rem; }
.ts-project-print--axiom { transform: rotate(1.4deg); width: 89%; margin-left: 11%; }
.ts-project-print--editor { position: relative; width: 65%; margin-top: -4.5rem; margin-bottom: -3rem; margin-left: -1rem; transform: rotate(-2.8deg); z-index: 1; }
.ts-project-print--editor img { aspect-ratio: 1.6; }
.ts-project-print--editor figcaption { font-size: .56rem; }
.ts-project-print--editor figcaption > span:first-child { font-size: .53rem; }
.ts-project-print--tools { transform: rotate(.9deg); margin: .75rem .5rem 1.1rem 0; }
.ts-project-file--tools .ts-project-file__body { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
.ts-project-tool-index { margin-top: 1.4rem; border-top: 1px solid var(--ledger-line); }
.ts-project-tool-index > a { display: grid; grid-template-columns: 22px minmax(0, 1fr) 15px; gap: .8rem; align-items: center; border-bottom: 1px solid var(--ledger-line); padding-block: .8rem; text-decoration: none; }
.ts-project-tool-index > a > span { font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; font-size: .62rem; color: #819071; }
.ts-project-tool-index strong { font-weight: 550; font-size: .86rem; }
.ts-project-tool-index i { font-style: normal; font-size: .9rem; color: var(--ledger-green); }
.ts-project-tool-index > a:hover strong { color: var(--ledger-green); }

.ts-project-appendix { border-top: 1px dashed #b1bca5; border-bottom: 1px dashed #b1bca5; margin: 0 .5rem; }
.ts-project-appendix > summary { display: grid; grid-template-columns: 90px minmax(0, 1fr) auto 14px; align-items: center; gap: 1rem; list-style: none; cursor: pointer; padding: 1rem .5rem; }
.ts-project-appendix > summary::-webkit-details-marker { display: none; }
.ts-project-appendix > summary > span:first-child { font-size: .62rem; letter-spacing: .08em; color: #7c886f; }
.ts-project-appendix > summary > strong { font-size: .84rem; font-weight: 550; line-height: 1.7; }
.ts-project-appendix__hint { font-size: .64rem; color: #677b58; }
.ts-project-appendix > summary::after { content: "+"; color: #3e6250; font-size: 1.25rem; font-weight: 400; text-align: center; }
.ts-project-appendix[open] > summary::after { content: "−"; }
.ts-project-appendix__body { padding: .5rem .5rem 1.4rem 106px; }
.ts-project-appendix dl { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.6rem; }
.ts-project-appendix dt { font-size: .75rem; font-weight: 550; color: #3e6250; margin-bottom: .5rem; }
.ts-project-appendix dd { margin: 0; color: #65715b; font-size: .78rem; line-height: 1.9; }
.ts-project-reference { margin: 1.3rem 0 0; padding-top: .9rem; border-top: 1px solid #d2d9c9; font-size: .74rem; line-height: 1.9; color: #77826b; }
.ts-project-reference a { color: #3e6250; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.ts-project-ledger a:focus-visible, .ts-project-ledger summary:focus-visible { outline: 2px solid #3e6250; outline-offset: 5px; }

.ts-projects-page { --project-paper: #f7f5ef; }
.ts-projects-cover { padding-block: clamp(2.5rem, 5vw, 4.5rem) 0; }
.ts-projects-cover__folio { display: flex; justify-content: space-between; gap: 1.5rem; align-items: start; }
.ts-projects-cover__folio > span { color: #75846a; font-size: .67rem; letter-spacing: .07em; }
.ts-projects-cover__layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(220px, .6fr); gap: 3.5rem; align-items: end; margin-top: 1rem; }
.ts-projects-cover h1 { font-size: clamp(2.5rem, 5vw, 4.9rem); font-weight: 580; line-height: 1.4; letter-spacing: -.06em; margin: 0 0 1.8rem; }
.ts-projects-cover__layout > div > p { color: #66745a; font-size: .96rem; line-height: 1.9; margin: 0; }
.ts-projects-cover__note { border-left: 2px solid #788d68; padding: .3rem 0 .3rem 1.4rem; transform: rotate(1.5deg); max-width: 310px; margin: 0 0 .8rem auto; }
.ts-projects-cover__note > span { font-size: .67rem; letter-spacing: .12em; color: #7c8c6e; }
.ts-projects-cover__note p { font-family: Georgia, "Songti SC", "Noto Serif CJK SC", serif; font-size: 1.16rem; line-height: 1.8; color: #405937; margin: .7rem 0; }
.ts-projects-cover__note small { font-size: .69rem; line-height: 1.8; color: #79866c; display: block; max-width: 230px; }
.ts-projects-index { border-top: 1px solid #98a78c; border-bottom: 1px solid #98a78c; display: flex; margin-top: 3rem; }
.ts-projects-index > a { flex: 1; display: grid; grid-template-columns: minmax(0, 1fr) 14px; padding: 1.2rem .9rem 1.2rem 0; text-decoration: none; gap: .35rem .5rem; }
.ts-projects-index > a + a { border-left: 1px solid #c6cfbb; padding-left: 1rem; }
.ts-projects-index > a > span { grid-column: 1; font-size: .6rem; letter-spacing: .06em; color: #8a947e; font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; }
.ts-projects-index strong { grid-column: 1; font-size: .8rem; font-weight: 550; line-height: 1.65; }
.ts-projects-index i { grid-column: 2; grid-row: 1 / 3; align-self: end; font-style: normal; color: #537448; }
.ts-projects-index > a:hover strong { color: #3e6250; }
.ts-projects-files { padding-block: clamp(3rem, 5vw, 5rem); }
.ts-projects-section-label { display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; margin-bottom: 1.5rem; }
.ts-projects-section-label .ts-eyebrow { margin: 0; }
.ts-projects-section-label .ts-text-link { font-size: .78rem; }
.ts-projects-sketches { border-top: 1px solid #c2ccb5; background: #f0f0e7; padding-block: clamp(3rem, 5vw, 5rem); }
.ts-projects-sketches__heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 3rem; }
.ts-projects-sketches__heading h2 { font-size: clamp(2.2rem, 3.75vw, 3.5rem); font-weight: 580; line-height: 1.35; margin: 0; }
.ts-projects-sketches__heading > p { color: #718163; font-size: .84rem; line-height: 1.9; margin-bottom: .3rem; max-width: 430px; }
.ts-projects-page .ts-filter { margin-bottom: 2.5rem; }
.ts-exploration-ledger { border-top: 1px solid #93a188; }
.ts-design-sheet { display: grid; grid-template-columns: 50px minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(1.5rem, 3vw, 3rem); border-bottom: 1px solid #c4cdb9; padding: 2.3rem 0; align-items: center; }
.ts-design-sheet__number { font-family: Georgia, "Times New Roman", serif; font-size: 2.15rem; line-height: 1; color: #8b9a7a; align-self: start; }
.ts-design-sheet__preview { display: block; padding: .45rem; background: #fdfcf4; box-shadow: 2px 4px 12px rgba(35, 47, 25, .08); border: 1px solid #d7ddce; transform: rotate(-.9deg); }
.ts-design-sheet:nth-child(even) .ts-design-sheet__preview { transform: rotate(1deg); }
.ts-design-sheet__preview img { display: block; width: 100%; height: auto; aspect-ratio: 1.6; object-fit: cover; transition: opacity .2s; }
.ts-design-sheet__preview:hover img { opacity: .92; }
.ts-design-sheet__copy > p:first-child { font-size: .66rem; letter-spacing: .07em; color: #8a987d; margin-bottom: .7rem; }
.ts-design-sheet h3 { font-size: clamp(1.4rem, 2.2vw, 2.1rem); font-weight: 550; line-height: 1.5; margin-bottom: .8rem; }
.ts-design-sheet h3 a { text-decoration: none; }
.ts-design-sheet__copy > p:not(:first-child) { color: #64735a; font-size: .88rem; line-height: 1.85; max-width: 480px; }
.ts-design-sheet .ts-text-link { font-size: .78rem; }
.ts-projects-page a:focus-visible { outline: 2px solid #3e6250; outline-offset: 5px; }

@media (max-width: 991px) {
    .ts-project-file__header { grid-template-columns: 70px minmax(0, 1fr); gap: 1.2rem; }
    .ts-project-file__number { font-size: 4.2rem; }
    .ts-project-file__header h3 { font-size: 1.9rem; }
    .ts-project-file__index { display: none; }
    .ts-project-file__body, .ts-project-file--axiom .ts-project-file__body, .ts-project-file--tools .ts-project-file__body { gap: 2rem; padding-inline: .5rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .ts-project-file__summary { font-size: .87rem; }
    .ts-project-margin { margin-left: .2rem; }
    .ts-project-margin p { font-size: 1rem; }
    .ts-project-file__links { gap: .6rem 1rem; }
    .ts-project-file__links .ts-text-link { font-size: .73rem; }
    .ts-project-print { padding: .5rem; }
    .ts-project-print--editor { width: 82%; margin-top: -1.5rem; }
    .ts-project-print figcaption { font-size: .57rem; padding-top: .45rem; }
    .ts-project-appendix__body { padding-left: .5rem; }
    .ts-projects-cover__layout { gap: 2rem; }
    .ts-projects-index strong { font-size: .7rem; }
    .ts-design-sheet { grid-template-columns: 35px minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem; }
    .ts-design-sheet__copy > p:not(:first-child) { font-size: .8rem; }
}
@media (max-width: 767px) {
    .ts-project-file { margin-top: 2.2rem; padding-bottom: 1.2rem; scroll-margin-top: 90px; }
    .ts-project-file__header { grid-template-columns: 52px minmax(0, 1fr); gap: .9rem; padding-block: .9rem; }
    .ts-project-file__number { font-size: 3.3rem; }
    .ts-project-file__header p { font-size: .52rem; letter-spacing: .045em; }
    .ts-project-file__header h3 { font-size: 1.5rem; }
    .ts-project-file__body, .ts-project-file--axiom .ts-project-file__body, .ts-project-file--tools .ts-project-file__body { grid-template-columns: 1fr; gap: 1.5rem; padding: 1.7rem .4rem 1.7rem; }
    .ts-project-file__summary { max-width: none; font-size: .9rem; }
    .ts-project-print--site, .ts-project-print--tools { margin-inline: .1rem; }
    .ts-project-print figcaption { font-size: .58rem; }
    .ts-project-margin { margin: 1.2rem 0 1.4rem .5rem; }
    .ts-project-margin p br { display: none; }
    .ts-project-margin p { font-size: 1rem; }
    .ts-project-record strong { font-size: .85rem; }
    .ts-project-print-stack { padding-top: .4rem; }
    .ts-project-print--axiom { width: 88%; }
    .ts-project-print--editor { width: 69%; margin-left: -.1rem; margin-top: -3rem; }
    .ts-project-appendix { margin: 0; }
    .ts-project-appendix > summary { grid-template-columns: 54px minmax(0, 1fr) 14px; gap: .7rem; padding: .9rem .2rem; }
    .ts-project-appendix > summary > strong { font-size: .73rem; }
    .ts-project-appendix > summary > span:first-child { font-size: .53rem; }
    .ts-project-appendix__hint { display: none; }
    .ts-project-appendix dl { grid-template-columns: 1fr; gap: 1rem; }
    .ts-project-appendix__body { padding: .6rem .2rem 1.2rem; }
    .ts-project-appendix dd { font-size: .77rem; }
    .ts-project-tool-index > a { padding-block: .75rem; }
    .ts-project-file__links .ts-text-link { font-size: .78rem; }
    .ts-projects-cover__folio { flex-direction: column; gap: 0; }
    .ts-projects-cover__folio .ts-kicker { margin-bottom: .6rem; }
    .ts-projects-cover__folio > span { font-size: .59rem; }
    .ts-projects-cover__layout { grid-template-columns: 1fr; gap: 1.8rem; margin-top: 1.7rem; }
    .ts-projects-cover h1 { font-size: clamp(2.2rem, 7.6vw, 3rem); margin-bottom: 1.3rem; }
    .ts-projects-cover__layout > div > p { font-size: .85rem; }
    .ts-projects-cover__note { margin-left: .6rem; margin-right: 0; max-width: none; transform: rotate(-.8deg); padding-left: 1rem; }
    .ts-projects-cover__note p { font-size: .96rem; margin-block: .4rem; }
    .ts-projects-cover__note p br { display: none; }
    .ts-projects-cover__note small { max-width: none; font-size: .63rem; }
    .ts-projects-index { display: grid; grid-template-columns: 1fr 1fr; margin-top: 1.8rem; }
    .ts-projects-index > a { padding: .85rem .4rem .85rem 0; }
    .ts-projects-index > a + a { border-left: 0; padding-left: 0; }
    .ts-projects-index > a:nth-child(even) { border-left: 1px solid #c6cfbb; padding-left: .8rem; }
    .ts-projects-index > a:nth-child(n + 3) { border-top: 1px solid #c6cfbb; }
    .ts-projects-index > a > span { font-size: .54rem; }
    .ts-projects-index strong { font-size: .75rem; }
    .ts-projects-section-label .ts-eyebrow { font-size: .57rem; }
    .ts-projects-section-label .ts-text-link { font-size: .68rem; }
    .ts-projects-sketches__heading { flex-direction: column; align-items: start; gap: 1.5rem; margin-bottom: 2rem; }
    .ts-projects-sketches__heading h2 { font-size: 2rem; }
    .ts-projects-sketches__heading > p { font-size: .78rem; }
    .ts-design-sheet { grid-template-columns: 28px minmax(0, 1fr); gap: 1rem; padding-block: 1.7rem; align-items: start; }
    .ts-design-sheet__number { font-size: 1.55rem; }
    .ts-design-sheet__copy { grid-column: 2; }
    .ts-design-sheet__preview { grid-column: 2; }
    .ts-design-sheet h3 { font-size: 1.4rem; }
    .ts-design-sheet__copy > p:first-child { font-size: .59rem; }
    .ts-design-sheet .ts-text-link { font-size: .74rem; }
}
@media (prefers-reduced-motion: reduce) {
    .ts-project-print img, .ts-design-sheet__preview img { transition: none; }
    .ts-project-print > a:hover img { transform: none; }
}
