/* Nirav Manubhai — production experience layer v11 */
:root{
  --nm-space-1:.5rem;--nm-space-2:.75rem;--nm-space-3:1rem;--nm-space-4:1.5rem;
  --nm-space-5:2rem;--nm-space-6:3rem;--nm-space-7:4.5rem;
  --nm-radius:3px;--nm-shadow:0 10px 34px rgba(44,37,25,.13);
  --nm-focus:#e6c77d;
}
html{scroll-padding-top:5rem;-webkit-text-size-adjust:100%}
body{overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body.nm-ready{animation:nm-page-in .42s ease both}
@keyframes nm-page-in{from{opacity:0}to{opacity:1}}
::selection{background:rgba(178,132,62,.25);color:inherit}
a,button,summary{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--nm-focus)!important;outline-offset:3px!important}
img{display:block}
main p,article p,.story p{widows:3;orphans:3}

/* Quiet reading progress */
.nm-reading-progress{position:fixed;inset:0 0 auto;z-index:9999;height:2px;pointer-events:none;background:transparent}
.nm-reading-progress>span{display:block;width:0;height:100%;background:var(--gold,#b2843e);transition:width .08s linear}

/* Journey context */
.nm-journey{display:inline-flex;align-items:center;gap:.55rem;min-height:32px;padding:.32rem .58rem;border:1px solid rgba(244,239,227,.34);border-radius:999px;color:var(--paper,#f4efe3);font-size:.66rem;line-height:1;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.nm-journey-dots{display:flex;gap:3px}.nm-journey-dots i{display:block;width:4px;height:4px;border:1px solid currentColor;border-radius:50%;opacity:.55}.nm-journey-dots i.done,.nm-journey-dots i.current{background:currentColor;opacity:1}.nm-journey-dots i.current{transform:scale(1.35)}

/* Consistent controls */
.btn,.gift-link{border-radius:var(--nm-radius)!important;transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease!important}
.btn:hover,.gift-link:hover{transform:translateY(-1px)}
.btn:active,.gift-link:active{transform:translateY(0)}

/* Unified visual treatment */
.reader-poster,.hero-poster img,.quiet-card img,.corridor-thumb{box-shadow:var(--nm-shadow)}
.reader-shell,.room-shell{width:min(100%,calc(var(--max-room,68rem) + 2.8rem))}
.story{max-width:44rem;margin-inline:auto}
.story p{max-width:68ch}

/* Back to top — single icon language */
.nm-top{position:fixed;right:clamp(.8rem,2vw,1.4rem);bottom:clamp(.8rem,2vw,1.4rem);z-index:70;width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(44,37,25,.18);border-radius:50%;background:rgba(244,239,227,.93);color:var(--leaf,#4e5d44);box-shadow:0 5px 18px rgba(44,37,25,.12);opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s ease;cursor:pointer;backdrop-filter:blur(8px)}
.nm-top.show{opacity:1;visibility:visible;transform:none}.nm-top:hover{background:var(--parch,#ece3d1)}.nm-top svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* External links receive a restrained marker */
a[target="_blank"]:not(.btn):not(.gift-link)::after{content:" ↗";font-size:.78em;opacity:.62}

/* Better mobile rhythm */
@media(max-width:720px){
  body{line-height:1.68}
  .topbar{padding:.72rem 4.5vw;gap:.6rem}.topbar .mark{font-size:.93rem}
  .nm-journey{padding:.28rem .48rem;font-size:.59rem}.nm-journey-dots{display:none}
  .reader-shell,.room-shell{padding-left:1.15rem!important;padding-right:1.15rem!important}
  .reader-title,.room-title{hyphens:auto;text-wrap:balance}
  .subhead,.reader-tagline{text-wrap:pretty}
  .story{font-size:1.08rem;line-height:1.84}
  .rule{margin:2.7rem 0}
}
@media(max-width:420px){.nm-journey{max-width:42vw;overflow:hidden;text-overflow:ellipsis}.nm-top{width:42px;height:42px}}
@media(prefers-reduced-motion:reduce){body.nm-ready{animation:none}.nm-reading-progress>span,.nm-top,.btn,.gift-link{transition:none!important}.btn:hover,.gift-link:hover{transform:none}}
@media print{.topbar,.nm-reading-progress,.nm-top,.reader-nav,.gift-box{display:none!important}body{background:#fff;color:#000}.reader-shell,.room-shell{max-width:none;padding:0}.story{max-width:none}}
