/* Differentiated Custom & Wholesale and Quote Received pages. */
.wholesale-desk,
.receipt-page {
    --desk-paper: #d8d0c2;
    --desk-paper-light: #efe8da;
    --desk-ink: #080b09;
    --desk-forest: #0f2b22;
    --desk-gold: #c7a25a;
    --desk-rule: rgba(199, 162, 90, .32);
}

.wholesale-desk {
    overflow: clip;
    background: var(--desk-ink);
    color: var(--desk-paper-light);
}

.wholesale-desk h1,
.wholesale-desk h2,
.wholesale-desk h3,
.receipt-page h1,
.receipt-page h2,
.receipt-page h3 {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
}

.ws-hero {
    min-height: 900px;
    padding: calc(var(--ppp-header-height) + 84px) 0 90px;
    display: grid;
    align-items: center;
    background:
        linear-gradient(90deg, transparent 0 59.5%, rgba(199, 162, 90, .16) 59.5% 59.58%, transparent 59.58%),
        linear-gradient(118deg, #070907 0 62%, #10271e 62% 100%);
}

.ws-hero-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.47fr) minmax(300px, .82fr);
    gap: clamp(56px, 7vw, 110px);
    align-items: end;
}

.ws-hero-copy h1 {
    max-width: 940px;
    margin: 24px 0 32px;
    font-size: clamp(4rem, 7.6vw, 8.4rem);
    line-height: .86;
    letter-spacing: -.062em;
}

.ws-hero-copy h1 span {
    display: block;
    overflow: hidden;
}

.js .ws-hero-copy h1 span,
.js .ws-hero-copy .ws-lede,
.js .ws-hero-copy .hero-actions {
    opacity: 0;
    transform: translateY(28px);
}

.js .ws-hero.is-ready .ws-hero-copy h1 span,
.js .ws-hero.is-ready .ws-hero-copy .ws-lede,
.js .ws-hero.is-ready .ws-hero-copy .hero-actions {
    opacity: 1;
    transform: none;
    transition: opacity 660ms var(--ppp-ease-expo), transform 660ms var(--ppp-ease-expo);
}

.js .ws-hero.is-ready .ws-hero-copy h1 span:nth-child(2) { transition-delay: 80ms; }
.js .ws-hero.is-ready .ws-hero-copy h1 span:nth-child(3) { transition-delay: 160ms; }
.js .ws-hero.is-ready .ws-hero-copy .ws-lede { transition-delay: 240ms; }
.js .ws-hero.is-ready .ws-hero-copy .hero-actions { transition-delay: 320ms; }

.ws-lede {
    max-width: 720px;
    color: #c5c0b6;
    font-size: 1.05rem;
    line-height: 1.75;
}

.ws-input-register {
    position: relative;
    padding: 0 0 18px 28px;
    border-left: 1px solid rgba(224, 191, 118, .46);
}

.ws-register-head {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding-bottom: 20px;
    color: var(--desk-gold);
    font-size: .62rem;
    letter-spacing: .16em;
}

.ws-input-register ol {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--desk-rule);
}

.ws-input-register li {
    display: grid;
    grid-template-columns: 38px 1fr 30px;
    align-items: center;
    min-height: 72px;
    border-bottom: 1px solid var(--desk-rule);
    color: #777b75;
    transition: color 240ms ease, padding 240ms ease;
}

.ws-input-register li span {
    color: var(--desk-gold);
    font-family: "Courier New", monospace;
    font-size: .68rem;
}

.ws-input-register li strong {
    font-family: Georgia, serif;
    font-size: 1.2rem;
    font-weight: 400;
}

.ws-input-register li i {
    width: 6px;
    height: 6px;
    border: 1px solid var(--desk-gold);
}

.js .ws-hero.is-ready .ws-input-register li {
    animation: ws-input-active 420ms ease both;
    animation-delay: calc(520ms + var(--input-index) * 150ms);
}

.ws-scan-line {
    position: absolute;
    left: -1px;
    top: 42px;
    width: 1px;
    height: calc(100% - 42px);
    background: var(--gold-bright);
    transform: scaleY(0);
    transform-origin: top;
}

.js .ws-hero.is-ready .ws-scan-line {
    transform: scaleY(1);
    transition: transform 950ms 520ms var(--ppp-ease-in-out);
}

@keyframes ws-input-active {
    0% { color: #777b75; padding-left: 0; }
    45% { color: var(--desk-paper-light); padding-left: 8px; }
    100% { color: #bcb8af; padding-left: 0; }
}

.ws-buyer-rail {
    border-block: 1px solid var(--desk-rule);
    background: #0a110d;
}

.ws-rail-track {
    display: grid;
    grid-template-columns: repeat(4, minmax(230px, 1fr));
    overflow-x: auto;
    scrollbar-width: thin;
    scroll-snap-type: x mandatory;
}

.ws-rail-track span {
    position: relative;
    min-height: 92px;
    padding: 36px 25px 24px;
    border-left: 1px solid rgba(199, 162, 90, .16);
    color: #b3b0a7;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .09em;
    scroll-snap-align: start;
}

.ws-rail-track span:last-child { border-right: 1px solid rgba(199, 162, 90, .16); }
.ws-rail-track span::after {
    content: "";
    position: absolute;
    left: 25px;
    right: 100%;
    bottom: 21px;
    height: 1px;
    background: var(--desk-gold);
    transition: right 260ms ease;
}
.ws-rail-track span:hover { color: var(--desk-paper-light); }
.ws-rail-track span:hover::after { right: 25px; }

.ws-route-split {
    position: relative;
    background: var(--desk-paper);
    color: var(--desk-ink);
}

.ws-side-label {
    width: min(1240px, calc(100vw - 48px));
    margin: 0 auto;
    padding: 112px 0 56px;
    display: grid;
    grid-template-columns: 210px minmax(0, 780px);
    gap: 40px;
    align-items: start;
}

.ws-side-label > span,
.ws-wide-heading > span,
.ws-decision-head > span,
.ws-ledger-head > span,
.ws-final-layout > span,
.ws-ribbon-head > span {
    color: #775f35;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .16em;
}

.ws-side-label h2,
.ws-wide-heading h2 {
    margin: 0;
    font-size: clamp(3rem, 5vw, 6rem);
    line-height: .94;
    letter-spacing: -.045em;
}

.ws-route-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 108px minmax(0, 1fr);
}

.ws-route {
    min-height: 610px;
    padding: clamp(48px, 6vw, 94px) max(32px, calc((100vw - 1240px) / 2));
}

.ws-route-custom { padding-right: clamp(44px, 7vw, 104px); }
.ws-route-repeat {
    padding-left: clamp(44px, 7vw, 104px);
    background: var(--desk-forest);
    color: var(--desk-paper-light);
}

.ws-route-code {
    color: #806a3d;
    font: 700 .63rem/1 "Courier New", monospace;
    letter-spacing: .15em;
}

.ws-route h3 {
    max-width: 540px;
    margin: 30px 0 20px;
    font-size: clamp(2.8rem, 4.3vw, 5rem);
    line-height: .95;
    letter-spacing: -.04em;
}

.ws-route > p { max-width: 530px; color: #4d504a; }
.ws-route-repeat > p { color: #b8b9b3; }
.ws-route ul {
    max-width: 560px;
    margin: 40px 0 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid rgba(8, 11, 9, .28);
}
.ws-route-repeat ul { border-color: var(--desk-rule); }
.ws-route li {
    padding: 14px 0;
    border-bottom: 1px solid rgba(8, 11, 9, .2);
}
.ws-route-repeat li { border-color: var(--desk-rule); }

.ws-decision-axis {
    position: relative;
    display: grid;
    grid-template-rows: auto 1fr auto 1fr auto;
    place-items: center;
    padding: 48px 0;
    color: #775f35;
    background: #bfb5a3;
    font-size: .55rem;
    font-weight: 800;
    letter-spacing: .12em;
    writing-mode: vertical-rl;
}
.ws-decision-axis i {
    width: 1px;
    height: 100%;
    background: #806a3d;
    transform: scaleY(0);
    transform-origin: top;
}
.ws-decision-axis b { font-size: 1.25rem; font-weight: 400; }
.is-line-visible .ws-decision-axis i {
    transform: scaleY(1);
    transition: transform 820ms var(--ppp-ease-in-out);
}

.ws-route-note {
    max-width: 850px;
    margin: 0 auto;
    padding: 38px 24px;
    color: #4c4f49;
    font-size: .82rem;
    text-align: center;
}

.ws-factors { background: #090d0b; }
.ws-wide-heading {
    display: grid;
    grid-template-columns: 210px 1fr;
    gap: 40px;
    padding-bottom: 60px;
    border-bottom: 1px solid var(--desk-rule);
}
.ws-wide-heading > span { color: var(--desk-gold); }

.ws-factor-ledger {
    margin: 0;
    padding: 0;
    list-style: none;
}
.ws-factor-ledger li {
    display: grid;
    grid-template-columns: 110px minmax(240px, .75fr) 1fr;
    gap: 32px;
    align-items: center;
    min-height: 126px;
    border-bottom: 1px solid var(--desk-rule);
    transition: padding 220ms ease, background 220ms ease;
}
.ws-factor-ledger li:hover {
    padding-left: 14px;
    background: linear-gradient(90deg, rgba(199, 162, 90, .06), transparent);
}
.ws-factor-ledger li > span {
    color: var(--desk-gold);
    font: 400 2rem/1 Georgia, serif;
}
.ws-factor-ledger h3 { margin: 0; font-size: clamp(1.5rem, 2.2vw, 2.25rem); }
.ws-factor-ledger p { max-width: 540px; margin: 0; color: #a9aaa4; }

.ws-canvas {
    background: var(--desk-forest);
}
.ws-canvas-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .55fr);
    gap: clamp(46px, 7vw, 110px);
    align-items: center;
}
.ws-canvas-heading h2 {
    margin: 12px 0 42px;
    font-size: clamp(3rem, 5.5vw, 6.4rem);
    line-height: .91;
    letter-spacing: -.05em;
}
.ws-brief-map {
    position: relative;
    min-height: 560px;
}
.ws-brief-map svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.ws-map-lines {
    fill: none;
    stroke: rgba(224, 191, 118, .54);
    stroke-width: 1;
}
.ws-map-lines path {
    stroke-dasharray: 360;
    stroke-dashoffset: 360;
}
.is-line-visible .ws-map-lines path {
    stroke-dashoffset: 0;
    transition: stroke-dashoffset 900ms var(--ppp-ease-in-out);
}
.ws-map-centre,
.ws-map-node {
    position: absolute;
    z-index: 1;
    transform: translate(-50%, -50%);
}
.ws-map-centre {
    left: 50%;
    top: 50%;
    width: 210px;
    padding: 24px 16px;
    border-block: 1px solid var(--desk-gold);
    color: var(--gold-bright);
    font: 400 1.7rem/.95 Georgia, serif;
    text-align: center;
}
.ws-map-node {
    min-width: 140px;
    padding: 9px 10px;
    border-bottom: 1px solid var(--desk-rule);
    color: var(--desk-paper);
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-align: center;
    text-transform: uppercase;
}
.ws-map-node:hover,
.ws-map-node:focus-visible { color: var(--gold-bright); border-color: var(--gold-bright); }
.node-1 { left: 15%; top: 13%; }
.node-2 { left: 47%; top: 7%; }
.node-3 { left: 85%; top: 17%; }
.node-4 { left: 15%; top: 51%; }
.node-5 { left: 84%; top: 50%; }
.node-6 { left: 29%; top: 87%; }
.node-7 { left: 75%; top: 87%; }

.ws-canvas-note {
    position: sticky;
    top: calc(var(--ppp-header-height) + 32px);
    padding-left: 28px;
    border-left: 1px solid var(--desk-rule);
}
.ws-canvas-note > span {
    color: var(--desk-gold);
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .15em;
}
.ws-canvas-note ul {
    margin: 28px 0 38px;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--desk-rule);
}
.ws-canvas-note li { padding: 13px 0; border-bottom: 1px solid var(--desk-rule); }

.ws-artwork {
    background: var(--desk-paper);
    color: var(--desk-ink);
}
.ws-artwork-layout {
    display: grid;
    grid-template-columns: minmax(360px, .85fr) minmax(0, 1.15fr);
    gap: clamp(54px, 8vw, 120px);
    align-items: center;
}
.ws-artwork-sheet {
    position: relative;
    min-height: 660px;
    padding: 34px;
    background:
        linear-gradient(rgba(8, 11, 9, .025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(8, 11, 9, .025) 1px, transparent 1px),
        #e8e1d4;
    background-size: 28px 28px;
    box-shadow: 24px 28px 0 rgba(8, 11, 9, .09);
}
.ws-document-code {
    font: 700 .6rem/1 "Courier New", monospace;
    letter-spacing: .13em;
}
.ws-specimen-mark {
    position: relative;
    min-height: 370px;
    margin: 36px 0 30px;
    border-block: 1px solid rgba(8, 11, 9, .3);
}
.ws-specimen-mark i {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 230px;
    border-top: 1px solid rgba(8, 11, 9, .38);
    transform-origin: center;
}
.ws-specimen-mark i:nth-child(2) { transform: rotate(60deg); }
.ws-specimen-mark i:nth-child(3) { transform: rotate(-60deg); }
.ws-specimen-mark b {
    position: absolute;
    left: 50%;
    top: 50%;
    display: grid;
    place-items: center;
    width: 150px;
    height: 150px;
    border: 1px solid #806a3d;
    transform: translate(-50%, -50%);
    color: #684f26;
    font: 400 1.25rem/1 Georgia, serif;
    text-align: center;
}
.ws-artwork-sheet dl { margin: 0; }
.ws-artwork-sheet dl > div {
    display: grid;
    grid-template-columns: 110px 1fr;
    padding: 10px 0;
    border-bottom: 1px solid rgba(8, 11, 9, .22);
}
.ws-artwork-sheet dt { font: 700 .6rem/1.4 "Courier New", monospace; letter-spacing: .08em; }
.ws-artwork-sheet dd { margin: 0; color: #535650; font-size: .78rem; }
.ws-artwork-sheet small { display: block; margin-top: 24px; color: #656861; font-size: .6rem; letter-spacing: .08em; }
.ws-review-desk h2 {
    max-width: 690px;
    margin: 14px 0 48px;
    font-size: clamp(2.8rem, 4.5vw, 5.2rem);
    line-height: .95;
    letter-spacing: -.045em;
}
.ws-review-list { border-top: 1px solid rgba(8, 11, 9, .3); }
.ws-review-list > div {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    padding: 15px 0;
    border-bottom: 1px solid rgba(8, 11, 9, .22);
}
.ws-review-list strong {
    color: #765d31;
    font-size: .58rem;
    letter-spacing: .1em;
}
.ws-artwork-notes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 30px;
    margin: 38px 0 0;
    padding: 0;
    list-style: none;
    color: #4c4f49;
}
.ws-artwork-notes li::before { content: "— "; color: #806a3d; }

.ws-decision { background: #0a0f0c; }
.ws-decision-head {
    display: grid;
    grid-template-columns: 210px minmax(0, 860px);
    gap: 40px;
}
.ws-decision-head > span { color: var(--desk-gold); }
.ws-decision-head h2 {
    margin: 0;
    font-size: clamp(3rem, 5vw, 5.8rem);
    line-height: .94;
    letter-spacing: -.045em;
}
.ws-fork {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14vw;
    margin-top: 90px;
    padding-top: 90px;
}
.ws-fork::before,
.ws-fork::after {
    content: "";
    position: absolute;
    top: 0;
    width: calc(50% - 7vw);
    height: 80px;
    border-top: 1px solid var(--desk-gold);
}
.ws-fork::before { left: 0; border-right: 1px solid var(--desk-gold); }
.ws-fork::after { right: 0; border-left: 1px solid var(--desk-gold); }
.ws-fork-origin {
    position: absolute;
    left: 50%;
    top: 0;
    height: 35px;
    border-left: 1px solid var(--desk-gold);
    transform: scaleY(0);
    transform-origin: top;
}
.is-line-visible .ws-fork-origin { transform: scaleY(1); transition: transform 560ms var(--ppp-ease-in-out); }
.ws-fork article { min-width: 0; }
.ws-fork article > span { color: var(--desk-gold); font-size: .62rem; font-weight: 800; letter-spacing: .15em; }
.ws-fork h3 { max-width: 500px; margin: 22px 0 30px; font-size: clamp(2rem, 3vw, 3.4rem); line-height: 1; }
.ws-fork ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--desk-rule); }
.ws-fork li { padding: 13px 0; border-bottom: 1px solid var(--desk-rule); color: #b8b8b2; }
.ws-fork-merge {
    grid-column: 1 / -1;
    display: flex;
    justify-content: center;
    gap: 24px;
    margin-top: 70px;
    padding: 28px 0;
    border-block: 1px solid var(--desk-rule);
    color: var(--gold-bright);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.ws-ribbon {
    background: var(--desk-forest);
    padding-block: 90px;
}
.ws-ribbon-head {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 40px;
}
.ws-ribbon-head > span { color: var(--desk-gold); }
.ws-process-ribbon {
    position: relative;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    margin: 0;
    padding: 0;
    list-style: none;
}
.ws-process-ribbon::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 13px;
    border-top: 1px solid var(--desk-gold);
}
.ws-process-ribbon li { position: relative; padding-right: 20px; }
.ws-process-ribbon span {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 27px;
    height: 27px;
    border: 1px solid var(--desk-gold);
    background: var(--desk-forest);
    color: var(--gold-bright);
    font: 700 .58rem/1 "Courier New", monospace;
}
.ws-process-ribbon strong {
    display: block;
    max-width: 130px;
    margin-top: 18px;
    font-size: .7rem;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.ws-ledger {
    background: var(--desk-paper);
    color: var(--desk-ink);
}
.ws-ledger-head {
    display: grid;
    grid-template-columns: 210px minmax(0, 780px);
    gap: 40px;
    padding-bottom: 55px;
}
.ws-ledger-head h2 {
    margin: 0;
    font-size: clamp(3rem, 5vw, 5.6rem);
    line-height: .94;
    letter-spacing: -.045em;
}
.ws-preparation-ledger {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-top: 1px solid rgba(8, 11, 9, .32);
}
.ws-preparation-ledger section { padding: 28px 38px 0 0; }
.ws-preparation-ledger section + section { padding-left: 38px; border-left: 1px solid rgba(8, 11, 9, .24); }
.ws-preparation-ledger h3 { color: #735b31; font: 800 .66rem/1.2 Arial, sans-serif; letter-spacing: .14em; }
.ws-preparation-ledger ul { margin: 24px 0 0; padding: 0; list-style: none; }
.ws-preparation-ledger li { padding: 14px 0; border-bottom: 1px solid rgba(8, 11, 9, .22); }

.ws-faq { background: #0b100d; }
.ws-reading-column { width: min(920px, calc(100vw - 48px)); margin-inline: auto; }
.ws-faq-head { padding-bottom: 42px; border-bottom: 1px solid var(--desk-rule); }
.ws-faq-head > span { color: var(--desk-gold); font-size: .62rem; font-weight: 800; letter-spacing: .15em; }
.ws-faq-head h2 { margin: 18px 0 0; font-size: clamp(3rem, 5vw, 5.2rem); line-height: .94; letter-spacing: -.045em; }
.ws-faq-list details { border-bottom: 1px solid var(--desk-rule); }
.ws-faq-list summary {
    display: grid;
    grid-template-columns: 20px 1fr;
    gap: 16px;
    padding: 24px 0;
    color: var(--desk-paper-light);
    cursor: pointer;
    font-family: Georgia, serif;
    font-size: 1.25rem;
    list-style: none;
}
.ws-faq-list summary::-webkit-details-marker { display: none; }
.ws-faq-list summary span::before { content: "+"; color: var(--desk-gold); }
.ws-faq-list details[open] summary span::before { content: "−"; }
.ws-faq-list details div { max-width: 730px; padding: 0 0 24px 36px; color: #a9aaa4; }

.ws-final {
    padding-block: 120px;
    background: var(--desk-paper-light);
    color: var(--desk-ink);
}
.ws-final-layout {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr) auto;
    gap: 40px;
    align-items: end;
}
.ws-final-layout h2 {
    max-width: 790px;
    margin: 0;
    font-size: clamp(3.2rem, 5.6vw, 6.6rem);
    line-height: .9;
    letter-spacing: -.055em;
}
.ws-final-layout > div { display: grid; gap: 20px; justify-items: start; }
.ws-final-layout .text-link { color: #735b31; }

/* Quote received: a narrow project receipt, not a sales page. */
.ppp-confirmation {
    background: #070a08;
}
.receipt-page {
    overflow: clip;
    background: #070a08;
    color: var(--desk-paper-light);
}
.receipt-header-shell {
    width: min(1120px, calc(100vw - 48px));
    margin-inline: auto;
}
.minimal-header .receipt-header-shell {
    min-height: 82px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}
.minimal-header .receipt-header-shell nav,
.minimal-footer .receipt-header-shell nav {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}
.minimal-header .receipt-header-shell nav a,
.minimal-footer .receipt-header-shell nav a {
    color: #b8b8b2;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.minimal-header .receipt-header-shell nav a:hover,
.minimal-header .receipt-header-shell nav a:focus-visible,
.minimal-footer .receipt-header-shell nav a:hover,
.minimal-footer .receipt-header-shell nav a:focus-visible { color: var(--gold-bright); }
.minimal-footer .receipt-header-shell {
    display: flex;
    justify-content: space-between;
    gap: 30px;
}

.receipt-stage {
    min-height: 900px;
    padding: 84px 0 110px;
    display: grid;
    align-items: center;
}
.receipt-shell {
    width: min(820px, calc(100vw - 48px));
    margin-inline: auto;
}
.receipt-breadcrumb {
    display: flex;
    gap: 10px;
    margin-bottom: 22px;
    color: #888b84;
    font-size: .65rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.project-receipt {
    position: relative;
    padding: clamp(42px, 6vw, 76px);
    color: var(--desk-ink);
    background:
        linear-gradient(rgba(8, 11, 9, .025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(8, 11, 9, .018) 1px, transparent 1px),
        var(--desk-paper-light);
    background-size: 24px 24px;
    box-shadow: 0 34px 86px rgba(0, 0, 0, .3);
}
.project-receipt::before,
.project-receipt::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 1px;
    background: rgba(8, 11, 9, .45);
}
.project-receipt::before { top: 23px; }
.project-receipt::after { bottom: 23px; }
.receipt-heading {
    display: grid;
    grid-template-columns: 1fr 135px;
    gap: 44px;
    align-items: start;
}
.receipt-heading h1 {
    max-width: 570px;
    margin: 15px 0 0;
    font-size: clamp(3.1rem, 7vw, 6.4rem);
    line-height: .89;
    letter-spacing: -.055em;
}
.receipt-stamp {
    display: grid;
    place-items: center;
    min-height: 110px;
    padding: 15px;
    border: 1px solid #876d3b;
    color: #775b29;
    font: 800 .62rem/1.35 Arial, sans-serif;
    letter-spacing: .12em;
    text-align: center;
    transform: rotate(4deg) scale(.76);
    opacity: 0;
}
.js .project-receipt.is-ready .receipt-stamp {
    transform: rotate(-3deg) scale(1);
    opacity: 1;
    transition: opacity 320ms 420ms ease, transform 520ms 420ms cubic-bezier(.2, 1.2, .35, 1);
}
.no-js .receipt-stamp { opacity: 1; transform: rotate(-3deg); }
.receipt-intro {
    max-width: 680px;
    margin: 42px 0;
    color: #4d504a;
    font-size: 1rem;
    line-height: 1.75;
}
.receipt-lines {
    margin: 0;
    border-top: 1px solid rgba(8, 11, 9, .32);
}
.receipt-lines > div {
    display: grid;
    grid-template-columns: 135px 1fr;
    gap: 24px;
    padding: 16px 0;
    border-bottom: 1px solid rgba(8, 11, 9, .24);
}
.receipt-lines dt,
.receipt-lines dd,
.project-receipt footer {
    font-family: "Courier New", monospace;
    font-size: .68rem;
    letter-spacing: .06em;
}
.receipt-lines dt { color: #765f37; }
.receipt-lines dd { margin: 0; font-weight: 700; }
.project-receipt footer {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-top: 42px;
    color: #686b65;
}

.receipt-reading {
    width: min(820px, calc(100vw - 48px));
    margin-inline: auto;
}
.receipt-page .section { padding-block: 112px; }
.receipt-section-head {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 28px;
    align-items: start;
}
.receipt-section-head > span,
.receipt-correction header > span {
    color: var(--desk-gold);
    font: 700 .62rem/1.3 "Courier New", monospace;
    letter-spacing: .12em;
}
.receipt-section-head h2,
.receipt-correction h2 {
    margin: 0;
    font-size: clamp(2.7rem, 5vw, 4.6rem);
    line-height: .96;
    letter-spacing: -.045em;
}
.receipt-section-head > p {
    grid-column: 2;
    max-width: 580px;
    margin: 15px 0 0;
    color: #9ea098;
}
.receipt-next { background: #0b100d; }
.receipt-timeline {
    position: relative;
    margin: 70px 0 0;
    padding: 0;
    list-style: none;
}
.receipt-timeline::before {
    content: "";
    position: absolute;
    left: 23px;
    top: 24px;
    bottom: 24px;
    border-left: 1px solid var(--desk-gold);
}
.receipt-timeline li {
    position: relative;
    display: grid;
    grid-template-columns: 48px 1fr 100px;
    gap: 24px;
    min-height: 130px;
}
.receipt-timeline li > span {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border: 1px solid var(--desk-gold);
    background: #0b100d;
    color: var(--gold-bright);
    font: 700 .62rem/1 "Courier New", monospace;
}
.receipt-timeline h3 { margin: 4px 0 7px; font-size: 1.55rem; }
.receipt-timeline p { max-width: 520px; margin: 0; color: #a6a79f; }
.receipt-timeline li > strong {
    padding-top: 12px;
    color: var(--desk-gold);
    font-size: .57rem;
    letter-spacing: .1em;
}

.receipt-information {
    background: var(--desk-paper-light);
    color: var(--desk-ink);
}
.receipt-information .receipt-section-head > span { color: #755d31; }
.receipt-information-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
    margin-top: 62px;
}
.receipt-information-columns section + section { padding-left: 70px; border-left: 1px solid rgba(8, 11, 9, .25); }
.receipt-information-columns h3 { margin: 0; font-size: 1.6rem; }
.receipt-information-columns ul { margin: 26px 0 0; padding: 0; list-style: none; }
.receipt-information-columns li { padding: 13px 0; border-bottom: 1px solid rgba(8, 11, 9, .22); }

.receipt-submit-once {
    background: var(--desk-gold);
    color: var(--desk-ink);
}
.receipt-submit-once .receipt-reading {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 50px;
    align-items: center;
    min-height: 170px;
    padding-block: 34px;
}
.receipt-submit-once strong { font-family: Georgia, serif; font-size: clamp(1.6rem, 3vw, 2.5rem); line-height: 1; }
.receipt-submit-once p { margin: 0; color: #272a26; }

.receipt-correction { background: #0a0e0b; }
.receipt-correction-layout {
    display: grid;
    grid-template-columns: 1fr .85fr;
    gap: 70px;
    align-items: end;
}
.receipt-correction h2 { margin-top: 20px; }
.receipt-correction-layout > div p { margin: 0 0 30px; color: #aaa9a1; }

.receipt-explore {
    background: var(--desk-paper);
    color: var(--desk-ink);
}
.receipt-explore .receipt-section-head > span { color: #755d31; }
.receipt-directory {
    margin-top: 60px;
    border-top: 1px solid rgba(8, 11, 9, .32);
}
.receipt-directory a {
    display: grid;
    grid-template-columns: 55px 1fr auto;
    gap: 20px;
    padding: 21px 0;
    border-bottom: 1px solid rgba(8, 11, 9, .24);
}
.receipt-directory span { color: #755d31; font-family: "Courier New", monospace; font-size: .7rem; }
.receipt-directory strong { font-family: Georgia, serif; font-size: 1.35rem; font-weight: 400; }
.receipt-directory i { color: #755d31; font-style: normal; }
.receipt-directory a:hover,
.receipt-directory a:focus-visible { padding-left: 10px; color: #624a21; }

.correction-context {
    border-left-color: #806a3d;
    background: #e7dece;
}
.correction-context strong { display: block; margin-bottom: 6px; }
.correction-context p { margin: 0; }

@media (max-width: 1024px) {
    .ws-hero { min-height: auto; }
    .ws-hero-layout,
    .ws-canvas-layout,
    .ws-artwork-layout,
    .ws-final-layout {
        grid-template-columns: 1fr;
    }
    .ws-input-register { max-width: 720px; margin-top: 30px; }
    .ws-route-grid { grid-template-columns: 1fr; }
    .ws-route { min-height: 0; padding-inline: max(32px, calc((100vw - 840px) / 2)); }
    .ws-decision-axis {
        height: 86px;
        grid-template-columns: auto 1fr auto 1fr auto;
        grid-template-rows: 1fr;
        padding: 0 28px;
        writing-mode: horizontal-tb;
    }
    .ws-decision-axis i { width: 100%; height: 1px; transform: scaleX(0); transform-origin: left; }
    .is-line-visible .ws-decision-axis i { transform: scaleX(1); }
    .ws-canvas-note { position: relative; top: auto; max-width: 600px; }
    .ws-artwork-sheet { width: min(650px, 100%); }
    .ws-final-layout > div { grid-column: 1; }
}

@media (max-width: 768px) {
    .ws-side-label,
    .ws-wide-heading,
    .ws-decision-head,
    .ws-ledger-head,
    .receipt-section-head,
    .receipt-correction-layout {
        grid-template-columns: 1fr;
    }
    .ws-fork { grid-template-columns: 1fr; gap: 70px; padding-top: 50px; }
    .ws-fork::before,
    .ws-fork::after { display: none; }
    .ws-fork-origin { left: 16px; height: 100%; }
    .ws-fork article { padding-left: 46px; }
    .ws-fork-merge { grid-column: 1; }
    .ws-process-ribbon {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .ws-process-ribbon::before {
        left: 13px;
        right: auto;
        top: 13px;
        bottom: 13px;
        border-top: 0;
        border-left: 1px solid var(--desk-gold);
    }
    .ws-process-ribbon li {
        display: grid;
        grid-template-columns: 27px 1fr;
        gap: 20px;
        min-height: 76px;
    }
    .ws-process-ribbon strong { margin-top: 7px; }
    .ws-preparation-ledger { grid-template-columns: 1fr; }
    .ws-preparation-ledger section + section { padding-left: 0; border-left: 0; }
    .receipt-heading { grid-template-columns: 1fr; }
    .receipt-stamp { width: 140px; min-height: 76px; }
    .receipt-section-head > p { grid-column: 1; }
    .receipt-information-columns,
    .receipt-submit-once .receipt-reading {
        grid-template-columns: 1fr;
        gap: 34px;
    }
    .receipt-information-columns section + section { padding: 0; border: 0; }
}

@media (max-width: 600px) {
    .ws-hero {
        padding-top: 112px;
        background: linear-gradient(150deg, #070907 0 70%, #10271e 70% 100%);
    }
    .ws-hero-copy h1 { font-size: clamp(3.3rem, 15vw, 5.1rem); }
    .ws-input-register { padding-left: 18px; }
    .ws-rail-track { grid-template-columns: repeat(4, minmax(220px, 76vw)); }
    .ws-side-label { width: calc(100vw - 28px); padding-top: 82px; }
    .ws-route { padding: 65px 24px; }
    .ws-factor-ledger li {
        grid-template-columns: 58px 1fr;
        gap: 14px;
        padding: 24px 0;
    }
    .ws-factor-ledger li p { grid-column: 2; }
    .ws-brief-map {
        display: grid;
        gap: 0;
        min-height: 0;
    }
    .ws-brief-map svg { display: none; }
    .ws-map-centre,
    .ws-map-node {
        position: relative;
        left: auto;
        top: auto;
        width: 100%;
        transform: none;
    }
    .ws-map-centre { order: -1; margin-bottom: 16px; }
    .ws-map-node {
        min-width: 0;
        padding: 15px 0 15px 26px;
        text-align: left;
    }
    .ws-map-node::before {
        content: "";
        position: absolute;
        left: 7px;
        top: 0;
        bottom: 0;
        border-left: 1px solid var(--desk-rule);
    }
    .ws-map-node::after {
        content: "";
        position: absolute;
        left: 3px;
        top: 50%;
        width: 9px;
        height: 9px;
        border: 1px solid var(--desk-gold);
        background: var(--desk-forest);
    }
    .ws-artwork-sheet { min-height: 560px; padding: 24px; }
    .ws-specimen-mark { min-height: 300px; }
    .ws-specimen-mark i { width: 180px; }
    .ws-artwork-notes { grid-template-columns: 1fr; }
    .ws-ribbon-head { display: grid; }
    .ws-final-layout { gap: 28px; }
    .receipt-header-shell,
    .receipt-shell,
    .receipt-reading {
        width: calc(100vw - 28px);
    }
    .minimal-header .receipt-header-shell { min-height: 74px; }
    .minimal-header .receipt-header-shell nav { gap: 12px; }
    .minimal-header .receipt-header-shell nav a { font-size: .57rem; }
    .minimal-header .brand-copy small { display: none; }
    .receipt-stage { min-height: auto; padding: 62px 0 82px; }
    .project-receipt { padding: 45px 24px; }
    .receipt-heading h1 { font-size: clamp(3rem, 14vw, 4.4rem); }
    .receipt-lines > div { grid-template-columns: 1fr; gap: 5px; }
    .project-receipt footer { display: grid; }
    .receipt-page .section { padding-block: 82px; }
    .receipt-timeline li {
        grid-template-columns: 48px 1fr;
        gap: 18px;
        padding-bottom: 32px;
    }
    .receipt-timeline li > strong { grid-column: 2; padding-top: 0; }
    .receipt-submit-once .receipt-reading { padding-block: 38px; }
    .minimal-footer .receipt-header-shell { display: grid; }
}

@media (prefers-reduced-motion: reduce) {
    .js .ws-hero-copy h1 span,
    .js .ws-hero-copy .ws-lede,
    .js .ws-hero-copy .hero-actions,
    .receipt-stamp {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
        transition: none !important;
    }
    .ws-input-register li { animation: none !important; color: #bcb8af; }
    .ws-scan-line,
    .ws-decision-axis i,
    .ws-fork-origin { transform: none !important; }
    .ws-map-lines path { stroke-dashoffset: 0 !important; transition: none !important; }
}
