/* Requested updates layered over the restored design. */
/* Each half must cover the viewport throughout the seamless -50% loop. */
.asf-marquee-set { min-width: 100vw; justify-content: space-around; }
/* Strip travels left to right: the -50% loop played in reverse stays seamless. */
.asf-marquee-track { animation-direction: reverse; }
.asf-site .asf-marquee-icon { display: block; flex-shrink: 0; width: 40px; height: 36px; object-fit: contain; filter: brightness(0) invert(1); }
/* Contact bird: white silhouette framed by thin white rings, crest and beak breaking the circle. */
.asf-contact-emblem { --asf-emblem: 200px; position: relative; width: var(--asf-emblem); height: calc(var(--asf-emblem) * 1.16); margin-top: 8px; }
.asf-contact-emblem::before, .asf-contact-emblem::after { content: ''; position: absolute; left: 0; bottom: 0; width: var(--asf-emblem); aspect-ratio: 1; border-radius: 50%; }
.asf-contact-emblem::before { border: 1.5px solid rgba(255,255,255,.7); }
.asf-contact-emblem::after { border: 1px solid rgba(255,255,255,.25); transform: translate(14px, 10px) scale(1.06); }
.asf-site .asf-contact-bird { position: absolute; z-index: 1; left: -12%; bottom: 4%; width: 124%; max-width: none; height: auto; object-fit: contain; filter: brightness(0) invert(1); }
@media (prefers-reduced-motion: no-preference) {
 .asf-site .asf-contact-bird { animation: asf-bird-float 6s ease-in-out infinite; }
 @keyframes asf-bird-float { 50% { transform: translateY(-7px) rotate(-1.5deg); } }
}
@media (max-width: 767px) { .asf-contact-emblem { --asf-emblem: 160px; } }
/* Contact copy: tight paragraph rhythm instead of the original 36px/52px margins. */
.asf-site .asf-contact-title { margin-bottom: 20px; }
.asf-site .asf-contact-copy > p { margin: 0 0 14px; }
.asf-site .asf-contact-copy > .asf-contact-email { margin: 0 0 24px; color: var(--asf-cream); font-size: 16px; }
.asf-contact-email a { color: #fff; font-weight: 700; text-underline-offset: 4px; overflow-wrap: anywhere; }
.asf-hero-book-badge { position: absolute; z-index: 2; top: 3%; left: 2%; padding: 10px 18px; border-radius: 999px; background: var(--asf-coral); color: var(--asf-navy); font-size: 13px; font-weight: 800; letter-spacing: .12em; line-height: 1; text-transform: uppercase; white-space: nowrap; transform: rotate(-6deg); box-shadow: 0 10px 24px rgba(16,21,47,.25); }
.asf-book-buy { display: inline-block; margin-top: 16px; padding: 10px 18px; border: 1.5px solid var(--asf-navy); border-radius: 999px; color: var(--asf-navy); font-size: 14px; font-weight: 700; text-decoration: none; transition: background-color 200ms, color 200ms; }
.asf-book-buy:hover, .asf-book-buy:focus-visible { background: var(--asf-navy); color: var(--asf-cream); }
/* Desk notebook: shown whole (never cropped) so the character notes stay legible. */
.asf-desk-header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: end; gap: clamp(32px, 5vw, 80px); max-width: 1240px; }
.asf-desk-description { max-width: 56ch; margin: 0; font-family: var(--asf-font-display); font-size: 18px; font-weight: 400; line-height: 1.65; }
.asf-desk-scene { max-width: 1240px; margin: 0 auto; overflow: visible; border-radius: 0; box-shadow: none; }
.asf-desk-frame { overflow: hidden; border-radius: 22px; box-shadow: 0 35px 80px rgba(79,21,29,.24); }
.asf-desk-frame:focus-visible { outline: 3px solid var(--asf-navy); outline-offset: 4px; }
.asf-site .asf-desk-image { display: block; width: 100%; height: auto; max-height: none; aspect-ratio: 1585 / 992; object-fit: contain; border-radius: 0; }
.asf-desk-caption { display: flex; justify-content: flex-end; gap: 16px; margin-top: 16px; font-size: 14px; font-weight: 700; }
.asf-desk-swipe { display: none; }
.asf-desk-full { color: var(--asf-navy); text-underline-offset: 4px; }
@media (max-width: 767px) {
 .asf-desk-header { grid-template-columns: 1fr; gap: 20px; }
 .asf-desk-description { font-size: 16px; }
 .asf-desk-scene { width: var(--asf-container); }
 .asf-desk-frame { overflow-x: auto; overscroll-behavior-x: contain; border-radius: 16px; box-shadow: 0 20px 40px rgba(79,21,29,.2); }
 .asf-site .asf-desk-image { width: 900px; max-width: none; }
 .asf-desk-caption { justify-content: space-between; }
 .asf-desk-swipe { display: inline; }
}
.asf-contact-copy > p:last-of-type { margin-bottom: 24px; }
:root { --asf-font-display: "Helvetica Neue", Arial, sans-serif; --asf-font-editorial: var(--asf-font-display); }
.asf-biography-copy { font-family: var(--asf-font-display); }
.asf-biography-copy p { margin-bottom: .65em; line-height: 1.65; }
.asf-hero-book { width: min(46vw, 580px); height: auto; aspect-ratio: 940 / 1135; top: 24%; right: max(2%, calc((100% - 1380px)/2)); margin: 0; filter: drop-shadow(8px 12px 10px rgba(16,21,47,.22)); }
.asf-site .asf-hero-book img { width: 100%; height: 100%; object-fit: contain; }
/* The slimmer replacement has a transparent background and needs no crop mask. */
.asf-hero-line { max-width: 48ch; font-size: 18px; line-height: 1.65; }
/* Only the books have dimensional styling; photographs stay level. */
.asf-gloss-card { transform: none !important; transition: none; }
.asf-footer-logo { display: inline-block; width: min(260px, 70vw); }
.asf-site .asf-footer-logo img { width: 100%; height: auto; filter: grayscale(1) brightness(0) invert(1); }
.asf-statement-description { max-width: 48ch; margin: 14px 0 0; font-size: 17px; line-height: 1.65; }
.asf-contact { background: linear-gradient(rgba(16,21,47,.78),rgba(16,21,47,.88)), url('../images/asf-client-nature-1.jpg') center / cover; }
.asf-books { padding: clamp(64px, 7vw, 112px) 0; background: var(--asf-lavender); color: var(--asf-navy); scroll-margin-top: var(--asf-header-height); }
.asf-books-header, .asf-books-grid { width: min(1240px, var(--asf-container)); margin-inline: auto; }
.asf-books-header { margin-bottom: 48px; }
.asf-books-header h2 { margin: 12px 0 0; font-size: clamp(2.5rem, 5vw, 5rem); letter-spacing: -0.055em; line-height: 1; }
.asf-books-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 4vw, 64px); }
.asf-book-card { min-width: 0; padding: 8px 18px 0 0; perspective: 1200px; }
.asf-book-cover { position: relative; display: block; aspect-ratio: 2 / 3; overflow: hidden; background: var(--asf-navy); color: var(--asf-cream); border-radius: 2px 5px 5px 2px; transform: rotateY(-12deg); transform-origin: left center; box-shadow: 1px 1px 0 #d7d0c3, 3px 2px 0 #fff8ed, 4px 3px 0 #c5bdaf, 6px 4px 0 #fff8ed, 7px 5px 0 #c5bdaf, 9px 6px 0 #fff8ed, 11px 7px 0 #77717b, 16px 18px 22px rgba(16,21,47,.22), 25px 35px 42px rgba(16,21,47,.12); transition: transform 350ms var(--asf-ease); }
.asf-book-cover::before { content: ''; position: absolute; z-index: 3; inset: 0 auto 0 0; width: 22px; background: linear-gradient(90deg, rgba(0,0,0,.38), rgba(255,255,255,.16) 22%, rgba(0,0,0,.12) 35%, transparent); pointer-events: none; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
 .asf-book-card:hover .asf-book-cover, .asf-book-card:focus-within .asf-book-cover { transform: translateY(-8px) rotateY(-6deg); }
}
.asf-site .asf-book-cover img { width: 100%; height: 100%; object-fit: cover; }
.asf-book-status { margin: 38px 0 8px; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.asf-book-card h3 { margin: 0; font-size: clamp(1.25rem, 2vw, 1.8rem); letter-spacing: -.04em; line-height: 1.15; }
.asf-book-card h3 a { text-underline-offset: 5px; }
.asf-book-concept::after { content: ''; position: absolute; inset: 0; background: linear-gradient(rgba(16,21,47,.7), rgba(16,21,47,.12) 70%, rgba(16,21,47,.85)); }
.asf-book-concept-bloom::after { background: linear-gradient(rgba(53,14,37,.85), rgba(53,14,37,.18) 70%, rgba(53,14,37,.85)); }
.asf-cover-title, .asf-cover-author { position: absolute; z-index: 1; left: 8%; right: 8%; text-transform: uppercase; }
.asf-cover-title { top: 10%; font-size: clamp(1.8rem, 3.1vw, 3.2rem); font-weight: 800; letter-spacing: -.05em; line-height: 1.03; color: #fff5b0; }
.asf-cover-author { bottom: 6%; font-size: clamp(.85rem, 1.5vw, 1.45rem); font-weight: 500; letter-spacing: .13em; color: #fff; }
.asf-book-concept-bloom .asf-cover-title { color: #ffe8e8; }

@media (min-width: 768px) {
 .asf-hero { overflow: visible; z-index: 1; }
 .asf-hero-inner { min-height: 740px; height: min(740px,100dvh); justify-content: center; padding: 90px 0 64px; }
 .asf-hero-title { margin: 20px 0; padding: 0; }
 .asf-hero-footer { gap: 24px; }
 .asf-hero-book { width: min(46vw, 580px); height: auto; aspect-ratio: 940 / 1135; top: auto; bottom: -60px; right: max(2%, calc((100% - 1520px)/2)); }
 .asf-site .asf-hero-book img { object-position: center bottom; }
}

@media (max-width: 767px) {
 .asf-hero { min-height: 0; padding-bottom: 32px; }
 .asf-hero-book { position: relative; top: auto; right: auto; width: min(80%, 340px); height: auto; margin: 0 auto; }
 .asf-hero-line { font-size: 16px; }
 .asf-books-grid { grid-template-columns: 1fr; gap: 40px; max-width: 360px; }
 .asf-books-header { margin-bottom: 32px; }
 .asf-cover-title { font-size: clamp(2.6rem, 10vw, 3.4rem); }
 .asf-cover-author { font-size: 1.35rem; }
 .asf-site .asf-biography-photo img { height: auto; aspect-ratio: 4 / 5; object-position: center; }
}

/* Compact desktop composition for laptop widths and shorter displays. */
@media (min-width: 768px) and (max-width: 1600px), (min-width: 768px) and (max-height: 850px) {
 :root { --asf-container: min(1080px, calc(100% - 64px)); --asf-laptop-hero-height: clamp(600px, 90svh, 680px); }
 .asf-hero { min-height: var(--asf-laptop-hero-height); }
 .asf-hero-inner { min-height: var(--asf-laptop-hero-height); height: auto; padding: 90px 0 48px; }
 .asf-hero-title { font-size: clamp(60px, 6.2vw, 86px); margin: 16px 0; }
 .asf-hero-footer { width: 52%; gap: 20px; }
 .asf-hero-line { max-width: 48ch; font-size: 16px; line-height: 1.6; }
 .asf-hero-book { width: min(40vw, calc((var(--asf-laptop-hero-height) - 100px) * .8282)); right: max(3%, calc((100% - 1160px) / 2)); bottom: -48px; }
 .asf-books, .asf-about, .asf-statement, .asf-desk, .asf-contact { padding-block: 64px; }
 .asf-books-header, .asf-books-grid { max-width: 960px; }
 .asf-books-grid { gap: 44px; }
 .asf-books-header { margin-bottom: 32px; }
 .asf-books-header h2, .asf-about .asf-about-title, .asf-statement-title, .asf-desk-title, .asf-contact-title { font-size: clamp(36px, 3.6vw, 50px); }
 .asf-book-card h3 { font-size: 22px; }
 .asf-cover-title { font-size: clamp(24px, 2.45vw, 36px); }
 .asf-cover-author { font-size: clamp(13px, 1.25vw, 18px); }
 .asf-book-status { margin-top: 30px; }
 .asf-about .asf-about-header { margin-bottom: 32px; }
 .asf-biography { gap: 48px; }
 .asf-site .asf-biography-photo img { height: 400px; }
 .asf-biography-copy p { font-size: 16px; }
 .asf-biography-copy p:first-child { font-size: 20px; }
 .asf-statement-inner { gap: 48px; }
 .asf-desk-header, .asf-desk-scene { max-width: 1080px; }
 .asf-desk-description { font-size: 16px; }
 .asf-contact-inner { gap: 48px; }
 .asf-contact-copy > p { font-size: 16px; margin-block: 24px 32px; }
 .asf-contact-form-wrap { padding: 26px; }
 .asf-footer-title { font-size: 40px; }
}
