/* Incumbent SJH identity and page compositions remain authoritative. */
:root { --sjh-focus:#934b35; --sjh-motion:cubic-bezier(.22,1,.36,1); }
html { scroll-behavior:smooth; scrollbar-color:#a8745e #faf8f4; }
::selection { background:#d8b69d; color:#252621; }
input,textarea { caret-color:#934b35; }
:focus-visible { outline:2px solid var(--sjh-focus); outline-offset:5px; }
[hidden] { display:none!important; }
/* Content is visible before JavaScript, after errors, and under reduced motion. */
.demo_demo__r2d5l[data-still=false] [data-demo-reveal],
.demo_demo__r2d5l[data-still=false] [data-text-reveal],
.demo_demo__r2d5l[data-still=false] .demo_brandCopy__ujy34>*,
.demo_demo__r2d5l[data-still=false] .demo_offerStatement__44G2t>span { opacity:1; transform:none; clip-path:none; }
.demo_demo__r2d5l[data-still=false] .demo_copperRule__97xgs,
.demo_demo__r2d5l[data-still=false] .demo_offerStatement__44G2t:before { transform:scaleX(1); }
.demo_demo__r2d5l .demo_footerReveal__MKN08 { position:relative; }
.demo_demo__r2d5l .demo_footerReveal__MKN08>* { transform:none; opacity:1; }
.demo_demo__r2d5l :is(.demo_title__OnITF,.demo_heading__fTksC,.demo_navMajor__yqP8J) { letter-spacing:-.04em; }
.demo_demo__r2d5l .demo_brandImage__PRx9d { transition:transform 900ms var(--sjh-motion),filter 900ms var(--sjh-motion); }
.demo_brandCard__Nx3Vm:hover .demo_brandImage__PRx9d { transform:scale(1.025); }
.demo_button__Urlud, .demo_directoryLinks__su_5r a { touch-action:manipulation; }
.demo_navOverlay__Ylm2_ { scrollbar-gutter:stable; }
.demo_demoHeader__zYzxF[data-open=true] .demo_navOverlay__Ylm2_ { padding-bottom:env(safe-area-inset-bottom); }
.demo_navMajor__yqP8J[aria-expanded=true]:before { display:none; }
.demo_navMajor__yqP8J { min-height:44px; }
img { max-width:100%; }
/* Intrinsic image dimensions reserve layout; a quiet shimmer covers real pending media. */
.sjh-media-pending { background-color:#e7e0d6; background-image:linear-gradient(105deg,transparent 25%,#fff6 45%,transparent 65%); background-size:240% 100%; animation:sjh-media 1.6s ease-in-out infinite; }
@keyframes sjh-media { from { background-position:100% 0; } to { background-position:-100% 0; } }
.sjh-media-ready { animation:none; }
.sjh-cookie-container { font-family:var(--font-dm-sans), 'DM Sans', sans-serif; }
.sjh-cookie-container .AnalyticsConsent_eyebrow__GWEq4 { text-transform:uppercase; }
.sjh-cookie-container p { margin:0; }
.sjh-cookie-container a { text-underline-offset:.2em; }
@media(max-width:699px) {
  .demo_mobileNavigation__8Sb1w { padding-block:1rem 2rem; }
  .demo_navMajor__yqP8J { font-size:clamp(1.8rem,7.5vw,2.7rem); padding-block:1rem; line-height:1.18; }
  .demo_mobileCompanyLinks__C4aKK a { min-height:48px; padding-block:.8rem; }
  .demo_mobileCompanyLinks__C4aKK[data-expanded=true] { max-height:32rem; }
  .home-footer-link-groups { min-width:0; }
  .group-pages_team__Oe1Mc .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .group-pages_team__Oe1Mc .team-name { overflow-wrap:normal; }
  .demo_brandCopy__ujy34 { gap:.9rem; }
  .demo_brandCopy__ujy34 p { font-size:1rem; line-height:1.5; }
}
@media(prefers-reduced-motion:reduce) {
 html {scroll-behavior:auto;}
 *, *:before, *:after { animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; }
 .sjh-media-pending {background-image:none;}
}
html[data-reduce-motion=true] {scroll-behavior:auto;}
html[data-reduce-motion=true] *, html[data-reduce-motion=true] *:before, html[data-reduce-motion=true] *:after {animation:none!important;transition:none!important;}
/* Editorial refinement: measured media arrival and quiet interaction feedback. */
:target { scroll-margin-top:6rem; }
.sjh-media-shell { background-color:#e7e0d6; isolation:isolate; }
.sjh-media-shell[data-media-loading=true]::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(105deg,#e7e0d6 25%,#f9f6f0 45%,#e7e0d6 65%); background-size:240% 100%; }
.sjh-media-shell[data-media-loading=true][data-media-visible=true]::before { animation:sjh-media 1.7s ease-in-out infinite; }
img.sjh-image-loading { opacity:0!important; }
.sjh-media-shell[data-media-loading=false]::before { display:none; }
.group-pages_cardImage__2VkpN img { transition:transform .85s var(--sjh-motion),opacity .35s ease,filter .85s ease; }
.team-portrait img,.st-james_coverArt__lPBR_ img { transition:scale .65s var(--sjh-motion),opacity .35s ease,filter .65s ease; }
@media(hover:hover) and (pointer:fine) {
 .st-james_bookCard__MwDbX:hover .st-james_coverArt__lPBR_ img { scale:1.025; }
 .team-portrait:hover img { scale:1.018; }
 .demo_button__Urlud:active { scale:.985; }
}
.demo_demo__r2d5l[data-scrolled=true] .demo_demoHeader__zYzxF { box-shadow:0 5px 18px #25262108; }
.demo_demoHeader__zYzxF { transition:background .35s,color .35s,box-shadow .35s; }
.demo_visibleNav__0oh3M>button { min-height:44px; }
@media(prefers-reduced-motion:reduce) {
 .sjh-media-shell::before { animation:none!important; background:#e7e0d6!important; }
 .group-pages_cardImage__2VkpN:hover img,.st-james_bookCard__MwDbX:hover .st-james_coverArt__lPBR_ img,.team-portrait:hover img { scale:1; }
}
html[data-reduce-motion=true] .sjh-media-shell::before { animation:none!important; background:#e7e0d6!important; }
html[data-reduce-motion=true] .group-pages_cardImage__2VkpN:hover img,html[data-reduce-motion=true] .st-james_bookCard__MwDbX:hover .st-james_coverArt__lPBR_ img,html[data-reduce-motion=true] .team-portrait:hover img { scale:1; }

/* Business copy remains readable; activation adds a bounded, cancellable reveal. */
.demo_demo__r2d5l .demo_brandCopy__ujy34 > *,
.demo_demo__r2d5l[data-still=false] .demo_brandCopy__ujy34 > *,
.demo_demo__r2d5l .demo_brandCopy__ujy34 .demo_wordRise__2KtKx,
.demo_demo__r2d5l[data-still=false] .demo_brandCopy__ujy34 .demo_wordRise__2KtKx { opacity:1; transform:none; clip-path:none; transition:none; }

@media(prefers-reduced-motion:reduce) { .group-pages_cardImage__2VkpN:hover img { transform:none; } }
html[data-reduce-motion=true] .group-pages_cardImage__2VkpN:hover img { transform:none; }
