body.nf-page section.nf-sec {
    margin: 0;
}

body.nf-page section.nf-hero {
    margin-top: -170px;
}

.nf-sec h1,
.nf-sec h2,
.nf-sec h3 {
    font-family: "Playfair Display", Georgia, serif;
}

.nf-sec p,
.nf-sec li,
.nf-sec a,
.nf-sec summary,
.nf-sec button,
.nf-kicker,
.nf-btn,
.nf-run {
    font-family: "Poppins", sans-serif;
}

.nf-wrap {
    width: min(1120px, calc(100% - 72px));
    margin: 0 auto;
}

.nf-kicker {
    margin: 0 0 16px;
    font-size: 12px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: #e4b423;
    font-weight: 500;
}

.nf-kicker a {
    color: inherit;
    text-decoration: none;
}

.nf-kicker a:hover { color: #fff; }

.nf-kicker span {
    margin: 0 8px;
    opacity: .4;
}

.nf-kicker-dark { color: #8a6420; }

.nf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 24px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .01em;
    text-decoration: none !important;
    border: 1px solid transparent;
    cursor: pointer;
    transition: transform .3s ease, background .3s ease, color .3s ease, border-color .3s ease;
}

.nf-btn:hover { transform: translateY(-2px); }

.nf-btn-gold {
    background: #f4c92d;
    color: #141820 !important;
}

.nf-btn-gold:hover {
    background: #ffe07a;
    color: #141820 !important;
}

.nf-btn-line {
    background: transparent;
    color: #f4f1ea !important;
    border-color: rgba(244, 241, 234, .35);
}

.nf-btn-line:hover {
    border-color: #f4c92d;
    color: #f4c92d !important;
}

.nf-btn-ink {
    background: transparent;
    color: #16191e !important;
    border-color: rgba(22, 25, 30, .45);
}

.nf-btn-ink:hover {
    background: #16191e;
    border-color: #16191e;
    color: #f4c92d !important;
}

.nf-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.nf-hero .nf-actions { margin-top: 0; }

.nf-ledger .nf-btn-gold {
    background: #16191e;
    color: #f4c92d !important;
}

.nf-ledger .nf-btn-gold:hover {
    background: #2c2416;
    color: #ffe07a !important;
}

/* Hero — open book and cream index */
.nf-hero {
    position: relative;
    padding: 248px 0 150px;
    color: #f4f1ea;
    background:
        radial-gradient(680px 460px at 78% 72%, rgba(212, 168, 62, .22), transparent 62%),
        linear-gradient(180deg, rgba(6, 8, 12, .35), rgba(6, 8, 12, 0) 150px),
        repeating-linear-gradient(0deg, transparent, transparent 71px, rgba(244, 241, 234, .045) 72px),
        repeating-linear-gradient(90deg, transparent, transparent 71px, rgba(244, 241, 234, .04) 72px),
        #0d1116;
    overflow: hidden;
}

.nf-hero-glow {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background: radial-gradient(420px circle at var(--mx, 70%) var(--my, 55%), rgba(244, 201, 45, .1), transparent 62%);
}

.nf-book {
    position: absolute;
    z-index: 1;
    top: 148px;
    right: -8px;
    width: min(1200px, 74vw);
    height: auto;
    max-width: none;
    pointer-events: none;
    user-select: none;
}

.nf-hero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .9fr);
    gap: 36px;
    align-items: center;
}

.nf-hero h1 {
    max-width: 9.4em;
    margin: 0 0 22px;
    color: #f7f4ee;
    font-weight: 500;
    font-size: clamp(46px, 4.3vw, 68px);
    line-height: 1.02;
    letter-spacing: -0.03em;
}

.nf-hero h1 em {
    font-style: italic;
    color: #f0c84a;
    text-decoration: underline;
    text-underline-offset: 5px;
    text-decoration-thickness: 2px;
}

.nf-lead {
    max-width: 460px;
    margin: 0 0 26px;
    color: #e7e1d6 !important;
    font-size: 16px;
    line-height: 1.65;
    font-weight: 300;
}

.nf-hero .nf-btn {
    border-radius: 6px;
    min-height: 48px;
    padding: 0 22px;
    font-weight: 600;
}

.nf-hero .nf-btn-line {
    background: #16130e;
    border-color: rgba(244, 241, 234, .55);
}

.nf-marks-wrap {
    margin-top: 34px;
    max-width: 520px;
}

.nf-marks {
    display: grid;
    grid-template-columns: 1fr 1fr 1.05fr;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.nf-marks li {
    padding: 0 14px;
    border-left: 1px solid rgba(232, 196, 92, .75);
    color: #efe8da;
    font-family: "Playfair Display", Georgia, serif;
    font-style: italic;
    font-size: 15px;
    line-height: 1.35;
    font-weight: 500;
}

.nf-marks li:first-child {
    padding-left: 0;
    border-left: 0;
}

.nf-diamond {
    display: block;
    width: 7px;
    height: 7px;
    margin: 22px auto 0;
    background: #f0c84a;
    transform: rotate(45deg);
}

.nf-toc {
    position: relative;
    z-index: 2;
    margin: 10px 0 28px;
    background: #f4ecd9;
    padding: 26px 30px 8px;
    box-shadow: 0 28px 70px rgba(0, 0, 0, .38);
    color: #1a1a1a;
}

.nf-toc-label {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0;
    font-size: 12px !important;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #1c1c1c !important;
    font-weight: 600;
}

.nf-toc-label:before,
.nf-toc-label:after {
    content: "";
    height: 1px;
    flex: 1;
    background: #c6a15a;
}

.nf-toc-star {
    display: block;
    width: 7px;
    height: 7px;
    margin: 10px auto 4px;
    background: #c6a15a;
    transform: rotate(45deg);
}

.nf-toc ol {
    list-style: none;
    margin: 6px 0 0;
    padding: 0;
}

.nf-toc li {
    display: grid;
    grid-template-columns: 46px 1px 1fr;
    gap: 0 16px;
    align-items: center;
    padding: 15px 0;
    border-bottom: 1px solid rgba(198, 161, 90, .45);
}

.nf-toc li:last-child { border-bottom: 0; }

.nf-toc li span {
    font-family: "Playfair Display", Georgia, serif;
    font-style: italic;
    color: #c6a15a;
    font-size: 22px;
}

.nf-toc li i {
    width: 1px;
    height: 26px;
    background: #c6a15a;
    display: block;
}

.nf-toc strong {
    display: block;
    margin: 0;
    font-family: "Playfair Display", Georgia, serif;
    font-weight: 500;
    font-size: 20px;
    color: #1a1a1a;
    line-height: 1.25;
}

html.nf-js .nf-hero h1,
html.nf-js .nf-hero .nf-lead,
html.nf-js .nf-hero .nf-actions,
html.nf-js .nf-hero .nf-marks-wrap,
html.nf-js .nf-toc {
    animation: nf-rise .85s cubic-bezier(.16, .8, .24, 1) both;
}

html.nf-js .nf-hero .nf-lead { animation-delay: .1s; }
html.nf-js .nf-hero .nf-actions { animation-delay: .18s; }
html.nf-js .nf-hero .nf-marks-wrap { animation-delay: .26s; }
html.nf-js .nf-toc { animation-delay: .12s; }

@keyframes nf-rise {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: none; }
}

/* Ticker */
.nf-run {
    background: #f4c92d;
    color: #141820;
    overflow: hidden;
}

.nf-run-track {
    display: flex;
    align-items: center;
    gap: 28px;
    width: max-content;
    padding: 13px 0;
    animation: nf-marquee 34s linear infinite;
}

.nf-run span {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .16em;
    text-transform: uppercase;
    white-space: nowrap;
}

.nf-run i {
    width: 5px;
    height: 5px;
    background: #141820;
    display: block;
    transform: rotate(45deg);
    flex: 0 0 auto;
}

@keyframes nf-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* Case */
.nf-case {
    background: #f6f3ec;
    padding: 96px 0 !important;
}

.nf-case-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
    gap: 64px;
    align-items: start;
}

.nf-case h2,
.nf-index h2,
.nf-build-head h2,
.nf-samples-head h2,
.nf-ledger-head h2,
.nf-split h2,
.nf-faq h2,
.nf-close h2 {
    margin: 0 0 16px;
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.08;
    color: #16191e;
}

.nf-case h2 {
    font-size: clamp(36px, 4vw, 56px);
    max-width: 12ch;
}

.nf-case p,
.nf-build-head p,
.nf-samples-head p,
.nf-faq p,
.nf-close p {
    color: #3c4038;
    font-size: 16.5px;
    line-height: 1.75;
    font-weight: 300;
}

.nf-case blockquote {
    margin: 26px 0;
    padding: 0;
    border: 0;
}

.nf-case blockquote p {
    margin: 0;
    font-family: "Playfair Display", Georgia, serif !important;
    font-style: italic;
    font-size: 28px !important;
    line-height: 1.3 !important;
    color: #16191e !important;
}

.nf-jobs {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
    border-top: 1px solid #16191e;
}

.nf-jobs li {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 12px;
    padding: 22px 0;
    border-bottom: 1px solid #d9d2c4;
}

.nf-jobs span {
    font-family: "Playfair Display", Georgia, serif;
    font-size: 20px;
    color: #8a6420;
}

.nf-jobs p {
    margin: 0;
    font-family: "Playfair Display", Georgia, serif !important;
    font-size: 22px !important;
    line-height: 1.3 !important;
    color: #16191e !important;
}

/* Index */
.nf-index {
    background: #fffdf8;
    padding: 88px 0 72px !important;
}

.nf-index-head {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1fr);
    gap: 32px;
    align-items: end;
    margin-bottom: 28px;
}

.nf-index h2 {
    font-size: clamp(34px, 4vw, 52px);
}

.nf-index-head p {
    margin: 0 0 8px;
    color: #4a463c !important;
    font-weight: 300;
    line-height: 1.65;
}

.nf-kind {
    width: 100%;
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: 4px 16px;
    align-items: baseline;
    padding: 18px 8px;
    border: 0;
    border-top: 1px solid #e6dfd2;
    background: transparent;
    text-align: left;
    cursor: pointer;
    color: #16191e;
}

.nf-kinds .nf-kind:last-child { border-bottom: 1px solid #e6dfd2; }

.nf-k-no {
    font-family: "Playfair Display", Georgia, serif;
    color: #b0893e;
    font-size: 16px;
}

.nf-k-name {
    font-family: "Playfair Display", Georgia, serif;
    font-size: 28px;
    font-weight: 500;
}

.nf-k-note {
    grid-column: 2;
    font-size: 15px;
    line-height: 1.5;
    color: #5c564c;
    font-weight: 300;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transform: translateY(4px);
    transition: max-height .4s ease, opacity .35s ease, transform .35s ease;
}

.nf-kind:hover,
.nf-kind:focus-visible,
.nf-kind.is-open {
    background: #f7f1e4;
}

.nf-kind:hover .nf-k-note,
.nf-kind:focus-visible .nf-k-note,
.nf-kind.is-open .nf-k-note {
    max-height: 80px;
    opacity: 1;
    transform: none;
}

.nf-kind:focus-visible {
    outline: 2px solid #e4b423;
    outline-offset: -2px;
}

/* Build */
.nf-build-sec {
    background: #ece7dc;
    padding: 96px 0 !important;
}

.nf-build-head {
    max-width: 640px;
    margin-bottom: 28px;
}

.nf-build-head h2,
.nf-samples-head h2,
.nf-ledger-head h2,
.nf-faq h2 {
    font-size: clamp(34px, 4vw, 54px);
}

.nf-build {
    position: relative;
    background: #fbf8f2;
    padding: 8px 8px 8px 0;
}

.nf-build-line {
    position: absolute;
    left: 86px;
    top: 18px;
    bottom: 18px;
    width: 1px;
    background: #e4b423;
    transform: scaleY(0);
    transform-origin: top center;
}

.nf-build article {
    display: grid;
    grid-template-columns: 86px 1fr;
    gap: 8px;
    padding: 22px 28px 22px 0;
    border-bottom: 1px solid #eadfce;
}

.nf-build article:last-child { border-bottom: 0; }

.nf-build article span {
    font-family: "Playfair Display", Georgia, serif;
    font-size: 22px;
    color: #8a6420;
    text-align: right;
    padding-right: 18px;
    position: relative;
    z-index: 1;
}

.nf-build h3 {
    margin: 0 0 6px;
    font-size: 24px;
    font-weight: 500;
    color: #16191e;
}

.nf-build p {
    margin: 0;
    max-width: 66ch;
}

/* Samples */
.nf-samples {
    background: #10161c;
    padding: 92px 0 100px !important;
}

.nf-samples-head { max-width: 640px; margin-bottom: 36px; }
.nf-samples-head h2 { color: #f6f3ec; }
.nf-samples-head p { color: #d4cec3 !important; }

.nf-sample-grid {
    display: grid;
    grid-template-columns: 1.25fr .85fr;
    gap: 18px;
    align-items: stretch;
}

.nf-sample-side {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.nf-sample {
    background: #f6f3ec;
    padding: 26px 26px 20px;
}

.nf-sample-ink {
    background: #1c2430;
    color: #f4f1ea;
}

.nf-sample-tag {
    margin: 0 0 12px;
    font-size: 11px !important;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #8a6420 !important;
}

.nf-sample-ink .nf-sample-tag { color: #e4b423 !important; }

.nf-sample h3 {
    margin: 0 0 10px;
    font-size: 28px;
    font-weight: 500;
    font-style: italic;
    color: #16191e;
}

.nf-sample-ink h3 { color: #f6f3ec; }

.nf-sample p {
    margin: 0;
    color: #2c312c !important;
    font-size: 16px !important;
    line-height: 1.65 !important;
}

.nf-sample-main p {
    font-family: "Playfair Display", Georgia, serif !important;
    font-size: 22px !important;
    line-height: 1.45 !important;
}

.nf-sample-ink p { color: #e6e0d4 !important; }

.nf-sample-note {
    margin-top: 16px !important;
    padding-top: 12px;
    border-top: 1px solid rgba(22, 25, 30, .12);
    font-size: 13px !important;
    letter-spacing: .01em;
    color: #6d675c !important;
    font-family: "Poppins", sans-serif !important;
    line-height: 1.5 !important;
}

.nf-sample-ink .nf-sample-note {
    border-top-color: rgba(244, 241, 234, .15);
    color: #c9c2b4 !important;
}

/* Ledger */
.nf-ledger {
    background: #f4c92d;
    padding: 84px 0 !important;
}

.nf-ledger .nf-kicker { color: #3d320c; }

.nf-ledger-head { margin-bottom: 22px; }
.nf-ledger h2 { max-width: 16ch; }

.nf-ledger-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    padding: 20px 0;
    border-top: 1px solid rgba(20, 24, 32, .28);
}

.nf-ledger-top {
    padding-bottom: 8px;
    font-size: 12px;
    letter-spacing: .16em;
    text-transform: uppercase;
    font-weight: 600;
}

.nf-ledger-row p {
    margin: 0;
    font-family: "Playfair Display", Georgia, serif !important;
    font-size: 22px !important;
    line-height: 1.35 !important;
    color: #16191e !important;
}

.nf-ledger-row p:first-child { opacity: .72; }

/* Split */
.nf-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 0 !important;
}

.nf-split-col {
    padding: 72px 56px;
}

.nf-split-col:first-child { background: #f6f3ec; }

.nf-split-desk {
    background: #121820;
    color: #f4f1ea;
}

.nf-split h2 {
    font-size: clamp(30px, 3vw, 42px);
    max-width: 16ch;
}

.nf-split-desk h2 { color: #f6f3ec; }

.nf-split ul {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
}

.nf-split li {
    position: relative;
    padding: 14px 0 14px 18px;
    border-top: 1px solid rgba(22, 25, 30, .12);
    font-size: 16px;
    line-height: 1.5;
    font-weight: 300;
}

.nf-split-desk li {
    border-top-color: rgba(244, 241, 234, .14);
    color: #e4ddd2;
}

.nf-split li:before {
    content: "";
    position: absolute;
    left: 0;
    top: 22px;
    width: 8px;
    height: 1px;
    background: #c8962e;
}

/* FAQ */
.nf-faq {
    background: #fbf8f2;
    padding: 88px 0 !important;
}

.nf-faq-narrow { max-width: 820px; }

.nf-q { border-top: 1px solid #e4dccb; }
.nf-q:last-child { border-bottom: 1px solid #e4dccb; }

.nf-q summary {
    list-style: none;
    cursor: pointer;
    padding: 20px 36px 20px 0;
    font-size: 20px;
    font-weight: 500;
    color: #16191e;
    position: relative;
    line-height: 1.35;
}

.nf-q summary::-webkit-details-marker { display: none; }

.nf-q summary:after {
    content: "";
    position: absolute;
    right: 6px;
    top: 50%;
    width: 10px;
    height: 10px;
    border-right: 1.5px solid #16191e;
    border-bottom: 1.5px solid #16191e;
    transform: translateY(-70%) rotate(45deg);
    transition: transform .3s ease;
}

.nf-q[open] summary:after {
    transform: translateY(-20%) rotate(225deg);
}

.nf-a p {
    margin: 0;
    padding: 0 8% 20px 0;
    color: #4a463c !important;
    font-size: 15.5px !important;
    line-height: 1.7 !important;
}

/* Close */
.nf-close {
    background: #10161c;
    padding: 96px 0 !important;
}

.nf-close-inner {
    max-width: 760px;
    border-left: 2px solid #f4c92d;
    padding-left: 28px;
}

.nf-close h2 {
    color: #f6f3ec;
    font-size: clamp(36px, 4.4vw, 58px);
}

.nf-close p {
    max-width: 540px;
    color: #d5cec2 !important;
}

.nf-close a:not(.nf-btn) {
    color: #f4c92d;
    text-underline-offset: 3px;
}

/* Reveal */
html.nf-js .nf-in {
    opacity: 0;
    transform: translateY(22px);
}

html.nf-js .nf-in.on {
    opacity: 1;
    transform: none;
    transition: opacity .75s ease, transform .75s cubic-bezier(.16, .8, .24, 1);
    transition-delay: var(--d, 0s);
}

@media (prefers-reduced-motion: reduce) {
    html.nf-js .nf-in,
    html.nf-js .nf-hero h1,
    html.nf-js .nf-hero .nf-lead,
    html.nf-js .nf-hero .nf-actions,
    html.nf-js .nf-hero .nf-marks-wrap,
    html.nf-js .nf-toc {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
    .nf-run-track { animation: none; }
    .nf-build-line { transform: scaleY(1); }
}

@media (max-width: 1500px) {
    .nf-book {
        width: min(1180px, 82vw);
        right: -20px;
        top: 150px;
    }
}

@media (max-width: 1100px) {
    .nf-case-grid,
    .nf-index-head,
    .nf-sample-grid,
    .nf-split {
        grid-template-columns: 1fr;
    }
    .nf-sample-side { display: contents; }
    .nf-sample-grid { display: flex; flex-direction: column; }
}

@media (max-width: 980px) {
    body.nf-page section.nf-hero { margin-top: -150px; padding-bottom: 88px; }
    .nf-hero-grid { grid-template-columns: 1fr; }
    .nf-book { top: auto; width: 420px; right: -40px; bottom: -20px; opacity: .85; }
    .nf-toc { margin-bottom: 20px; }
    .nf-marks { grid-template-columns: 1fr; gap: 12px; }
    .nf-marks li { border-left: 0; padding: 0; }
    .nf-wrap { width: min(1120px, calc(100% - 36px)); }
    .nf-k-note,
    .nf-kind:hover .nf-k-note,
    .nf-kind.is-open .nf-k-note {
        max-height: none;
        opacity: 1;
        transform: none;
    }
    .nf-split-col { padding: 48px 28px; }
}

@media (max-width: 640px) {
    body.nf-page section.nf-hero {
        margin-top: -128px;
        padding: 156px 0 52px;
    }
    .nf-hero h1 { font-size: 38px; max-width: none; }
    .nf-book { width: 280px; opacity: .55; }
    .nf-case,
    .nf-index,
    .nf-build-sec,
    .nf-samples,
    .nf-ledger,
    .nf-faq,
    .nf-close {
        padding-top: 56px !important;
        padding-bottom: 56px !important;
    }
    .nf-case blockquote p,
    .nf-jobs p,
    .nf-ledger-row p { font-size: 20px !important; }
    .nf-k-name { font-size: 24px; }
    .nf-ledger-row,
    .nf-ledger-top { grid-template-columns: 1fr; gap: 8px; }
    .nf-build article { grid-template-columns: 48px 1fr; }
    .nf-build-line { left: 36px; }
    .nf-sample-main p { font-size: 18px !important; }
    .nf-close-inner { padding-left: 16px; }
}
