/* 1.26.0 homepage: New book releases (nrhome.php). Every class is nr-prefixed: the homepage already uses .dw, .st, .btn … */
.nrsec{--acc:#b4451f;--acc2:#8f3417;--hl:#ffe6cf;--gd:#d9a53a;position:relative}
.nrsec .sh{align-items:flex-end}
.nrsec .sh h2 em{font-style:italic;color:var(--acc)}
.nrlive{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font:600 12.5px var(--ui);color:var(--muted)}
.nrlive i{width:8px;height:8px;border-radius:50%;background:#2fa35a;box-shadow:0 0 0 0 rgba(47,163,90,.5);animation:nrpulse 2.2s infinite}
@keyframes nrpulse{70%{box-shadow:0 0 0 9px rgba(47,163,90,0)}100%{box-shadow:0 0 0 0 rgba(47,163,90,0)}}
.nrtabs{position:relative;display:flex;background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px;margin-left:auto;box-shadow:0 10px 30px -22px rgba(28,27,46,.45)}
.nrtabs button{position:relative;z-index:1;border:0;background:none;border-radius:999px;padding:11px 20px;font:600 14px var(--ui);color:var(--muted);cursor:pointer;transition:color .3s;white-space:nowrap}
.nrtabs button i{font-style:normal;font-size:11.5px;background:#f2ede4;border-radius:99px;padding:2px 8px;margin-left:7px;color:var(--ink);transition:.3s}
.nrtabs button.on{color:#fff}.nrtabs button.on i{background:var(--gd);color:var(--ink)}
.nrpill{position:absolute;z-index:0;top:5px;bottom:5px;left:5px;width:0;border-radius:999px;background:var(--ink);transition:left .45s cubic-bezier(.2,.8,.2,1),width .45s cubic-bezier(.2,.8,.2,1)}
.nrpane{display:none}.nrpane.on{display:block;animation:nrin .55s cubic-bezier(.2,.8,.2,1) both}
@keyframes nrin{from{opacity:0;transform:translateY(14px)}}
/* covers: fixed 2:3 box, image + spine shading fill it exactly */
.nrcv{position:relative;display:block;aspect-ratio:2/3;perspective:1000px}
.nrcv img,.nrcv .nrph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:2px 6px 6px 2px;background:#ece5d8;box-shadow:12px 16px 24px -14px rgba(30,20,10,.55),3px 4px 8px -4px rgba(30,20,10,.3)}
.nrsp{position:absolute;inset:0;border-radius:2px 6px 6px 2px;background:linear-gradient(90deg,rgba(0,0,0,.3),rgba(255,255,255,.22) 2.5%,rgba(0,0,0,.12) 5%,transparent 10%);pointer-events:none}
/* the 3D book: cover + page block + spine */
.nr3d{transform-style:preserve-3d;transform:perspective(1200px) rotateY(-24deg) rotateX(4deg);transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.nr3d img{box-shadow:none;border-radius:2px 5px 5px 2px}
.nr3d:before{content:"";position:absolute;top:2%;bottom:2%;right:-14px;width:16px;background:repeating-linear-gradient(90deg,#fffdf7 0 1px,#e9e2d3 1px 2px);transform:rotateY(90deg) translateZ(-1px);transform-origin:left;border-radius:0 3px 3px 0}
.nr3d:after{content:"";position:absolute;inset:auto -8% -10% 4%;height:16%;background:radial-gradient(closest-side,rgba(40,20,0,.45),transparent);filter:blur(10px);transform:translateZ(-40px) rotateX(80deg);pointer-events:none}
a:hover>.nr3d,.nrbk:hover .nr3d{transform:perspective(1200px) rotateY(-8deg) rotateX(2deg)}
.nr3d .nrsp{border-radius:2px 5px 5px 2px}
/* spotlight */
.nrtop{display:grid;grid-template-columns:1.12fr 1fr;gap:22px}
.nrspot,.nrcount{position:relative;display:grid;grid-template-columns:210px 1fr;gap:34px;align-items:center;border-radius:30px;padding:34px 36px;overflow:hidden;isolation:isolate;background:#fffaf3;border:1px solid var(--line)}
.nrspot:before,.nrcount:before{content:"";position:absolute;inset:-30%;z-index:-2;background:var(--bg) center/cover;filter:blur(60px) saturate(1.4);opacity:.38;transform:scale(1.1)}
.nrspot:after,.nrcount:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,rgba(255,250,243,.55),rgba(255,250,243,.92) 55%)}
.nrglow{position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.55) 45%,transparent 60%);transform:translateX(-100%);animation:nrsweep 7s ease-in-out 1.2s infinite}
@keyframes nrsweep{0%,55%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.nrbk{display:block;padding:6px 14px 18px 0}
.nrlbl{display:inline-flex;align-items:center;gap:8px;font:700 11px var(--ui);letter-spacing:.16em;text-transform:uppercase;color:var(--acc)}
.nrlbl:before{content:"";width:18px;height:1.5px;background:currentColor}
.nrsx h3,.nrcx h3{font:400 clamp(30px,2.8vw,44px)/1.02 var(--serif);letter-spacing:-.025em;margin:12px 0 8px}.nrsx h3 a:hover,.nrcx h3 a:hover{color:var(--acc)}
.nrby{margin:0 0 14px;color:var(--muted);font:500 15px var(--ui)}
.nrrate{display:flex;align-items:center;gap:10px;margin:0 0 16px;font:500 13px var(--ui);color:var(--muted)}.nrrate b{font:600 20px var(--serif);color:var(--ink)}
.nrst{--p:calc(var(--r)/5*100%);font-size:18px;letter-spacing:2px;line-height:1;background:linear-gradient(90deg,#e0a21a var(--p),#ddd5c6 var(--p));-webkit-background-clip:text;background-clip:text;color:transparent}.nrst:before{content:"★★★★★"}
.nrdate{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 22px;font:500 14.5px var(--ui)}.nrdate i{font-style:normal;color:var(--muted)}.nrdate i:before{content:"· "}
.nrcal{width:50px;text-align:center;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 10px 20px -12px rgba(0,0,0,.4);flex:0 0 50px}
.nrcal small{display:block;background:var(--acc);color:#fff;font:700 9.5px var(--ui);letter-spacing:.14em;padding:3px 0}.nrcal b{display:block;font:500 22px/1.3 var(--serif)}
.nrbtn{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:#fff!important;border-radius:999px;padding:13px 22px;font:600 14px var(--ui);transition:.3s;box-shadow:0 14px 26px -16px rgba(28,27,46,.7)}
.nrbtn span{transition:transform .3s}.nrbtn:hover{background:var(--acc)}.nrbtn:hover span{transform:translateX(4px)}
/* week timeline */
.nrtl{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:30px;padding:26px 24px 20px}
.nrtlh{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}.nrtlh b{font:400 26px var(--serif);letter-spacing:-.01em}.nrtlh span{font:600 13px var(--ui);color:var(--muted)}
.nrdays{position:relative;display:grid;grid-template-columns:repeat(7,1fr);gap:6px;flex:1}
.nrline{position:absolute;left:calc(100%/14);right:calc(100%/14);top:68px;height:3px;border-radius:3px;background:#efe8db}
.nrline i{position:absolute;left:0;top:0;bottom:0;width:calc(var(--p)/6*100%);border-radius:3px;background:linear-gradient(90deg,var(--gd),var(--acc));transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
.nrdy{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:4px 2px 10px;border-radius:18px;transition:background .25s,transform .25s}
.nrdn{font:700 10.5px var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nrdy>b{font:400 24px/1.25 var(--serif)}
.nrdot{position:relative;z-index:1;width:13px;height:13px;border-radius:50%;background:#fff;border:3px solid #e2d9c8;margin:6px 0 12px}
.nrdy.past .nrdot{border-color:var(--gd)}.nrdy.has .nrdot{background:var(--acc);border-color:#fff;box-shadow:0 0 0 2px var(--acc)}
.nrdy.now .nrdot{background:var(--gd);border-color:#fff;box-shadow:0 0 0 2px var(--gd),0 0 0 0 rgba(217,165,58,.6);animation:nrnow 2s infinite}
@keyframes nrnow{70%{box-shadow:0 0 0 2px var(--gd),0 0 0 12px rgba(217,165,58,0)}100%{box-shadow:0 0 0 2px var(--gd),0 0 0 0 rgba(217,165,58,0)}}
.nrdy.now .nrdn{color:var(--acc)}
.nrfan{position:relative;width:58px;height:84px;margin-bottom:8px}
.nrfan img{position:absolute;left:50%;bottom:0;width:46px;aspect-ratio:2/3;object-fit:cover;border-radius:2px 4px 4px 2px;border:1.5px solid #fff;box-shadow:0 8px 14px -8px rgba(0,0,0,.55);transform:translateX(-50%) rotate(calc((var(--j) - 1) * 7deg)) translateY(calc(var(--j) * -2px));transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.nrfan img:nth-child(1){z-index:3}.nrfan img:nth-child(2){z-index:2}
.nrdy.has:hover{background:#fff6ec;transform:translateY(-3px)}
.nrdy.has:hover .nrfan img{transform:translateX(calc(-50% + (var(--j) - 1) * 18px)) rotate(calc((var(--j) - 1) * 12deg))}
.nrdy em{font-style:normal;font:600 12px var(--ui);color:var(--ink)}.nrdy em.no{color:#cbbfa9;margin-top:auto}.nrdy i{font-style:normal;font:600 10.5px var(--ui);color:#3f7d4e;margin-top:2px}
.nrdy.past:not(.has){opacity:.6}
.nrmore{align-self:flex-end;margin-top:10px;font:600 13.5px var(--ui);color:var(--acc)}.nrmore:hover{text-decoration:underline}
/* rows of cards */
.nrrowh{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:40px 0 18px;flex-wrap:wrap}
.nrrowh>span{font:400 26px var(--serif);letter-spacing:-.01em}
.nrchips{display:flex;gap:6px;flex-wrap:wrap}
.nrchips button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;font:600 13px var(--ui);color:var(--ink);cursor:pointer;transition:.2s}
.nrchips button:hover{border-color:var(--ink)}.nrchips button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.nrrow{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:30px 20px}
.nrc{position:relative;display:flex;flex-direction:column;min-width:0;transition:opacity .35s,transform .35s}
.nrc.hide{display:none}
.nrcf{position:relative;display:block;border-radius:6px}
.nrcf .nrcv{transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.nrov{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:14px;border-radius:2px 6px 6px 2px;color:#fff;background:linear-gradient(180deg,rgba(20,16,30,0) 20%,rgba(20,16,30,.9) 72%);opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s}
.nrov em{align-self:flex-start;font-style:normal;font:700 9.5px var(--ui);letter-spacing:.12em;text-transform:uppercase;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);border-radius:6px;padding:3px 7px}
.nrov span{font:400 12.5px/1.45 var(--read);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.nrov b{font:600 12.5px var(--ui);color:var(--gd)}
.nrc:hover .nrov{opacity:1;transform:none}.nrc:hover .nrcf .nrcv{transform:translateY(-6px)}
.nrrk{position:absolute;z-index:3;top:-8px;left:-8px;font:600 22px/1 var(--serif);color:#fff;background:var(--acc);border-radius:12px;padding:6px 9px;box-shadow:0 8px 16px -8px rgba(143,52,23,.8)}
.nrrv{position:absolute;z-index:3;top:8px;right:8px;font:700 11px var(--ui);background:rgba(28,27,46,.88);color:#fff;border-radius:99px;padding:4px 9px;backdrop-filter:blur(6px)}
.nrct{display:block;margin-top:14px}.nrct b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font:500 16px/1.25 var(--serif)}.nrct small{display:block;color:var(--muted);font:500 12.5px var(--ui);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nrct:hover b{color:var(--acc)}
.nrcw{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px;font:600 11.5px var(--ui);color:var(--acc)}.nrcw.up{color:#2f6b55}
.nrcw i{font-style:normal;background:#e9f7c6;color:#3c4a12;border-radius:6px;padding:2px 7px;font-size:10.5px}
.nrc.nrrvd .nrcf{outline:2px solid #d7f36b;outline-offset:5px;border-radius:4px}
/* coming soon */
.nrcount{grid-template-columns:170px 1fr;margin-bottom:38px}
.nrbk.sm{max-width:170px}
.nrclock{display:flex;gap:10px;margin:4px 0 22px}
.nrclock span{min-width:72px;text-align:center;background:rgba(255,255,255,.8);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:16px;padding:10px 6px 8px}
.nrclock b{display:block;font:500 32px/1 var(--serif);font-variant-numeric:tabular-nums}.nrclock i{font-style:normal;font:700 9.5px var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nrwk{margin-bottom:38px}
.nrwkh{display:flex;align-items:baseline;gap:16px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:22px}
.nrwkn{font:400 28px var(--serif);letter-spacing:-.01em}.nrwkn i{font-style:normal;color:var(--muted)}
.nrwkc{font:600 13px var(--ui);color:var(--muted)}.nrwkh a{margin-left:auto;font:600 13.5px var(--ui);color:var(--acc)}
.nrwk .nrrow{grid-template-columns:repeat(10,minmax(118px,1fr));overflow-x:auto;padding:10px 4px 14px 10px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.nrwk .nrc{scroll-snap-align:start}
/* reveal */
.nrsec .nrtl,.nrsec .nrspot,.nrsec .nrcount{animation:nrin .7s cubic-bezier(.2,.8,.2,1) both}.nrsec .nrtl{animation-delay:.12s}
@media (prefers-reduced-motion:reduce){.nrsec *,.nrsec *:before,.nrsec *:after{animation:none!important;transition:none!important}}
@media(max-width:1100px){.nrtop{grid-template-columns:1fr}.nrrow{grid-template-columns:repeat(4,minmax(0,1fr))}.nrtabs{margin-left:0}}
@media(max-width:700px){.nrsec .sh{align-items:flex-start}.nrtabs{width:100%}.nrtabs button{flex:1;padding:10px 8px;font-size:13px}
 .nrspot,.nrcount{grid-template-columns:116px 1fr;gap:20px;padding:22px 20px;border-radius:24px}.nrsx h3,.nrcx h3{font-size:26px}.nrdate{font-size:13px}
 .nrtl{padding:20px 12px 16px;border-radius:24px}.nrdays{gap:2px}.nrdy>b{font-size:19px}.nrdn{font-size:9px;letter-spacing:.08em}.nrfan{width:40px;height:58px}.nrfan img{width:32px}.nrline{top:60px}.nrdy em{font-size:10.5px}.nrdy i{display:none}
 .nrrow{grid-template-columns:repeat(10,128px);overflow-x:auto;scroll-snap-type:x mandatory;padding:10px 4px 12px 10px}.nrc{scroll-snap-align:start}.nrov{display:none}
 .nrclock span{min-width:0;flex:1}.nrclock b{font-size:24px}.nrwkn{font-size:22px}.nrwkh{flex-wrap:wrap}}
.nrtabs{overflow:hidden}
@media(max-width:700px){.nrrate span{display:none}.nrrate{gap:8px}.nrlbl{letter-spacing:.1em;font-size:10px}.nrdate i{display:none}.nrtlh{flex-direction:column;gap:2px}.nrtlh b{font-size:22px}}

/* 1.26.1: the hero's solid 3D book */
.nrstage{display:block;perspective:1600px;position:relative;width:100%}
.nrb3d{--d:24px;display:block;position:relative;transform-style:preserve-3d;transform:rotateY(-28deg) rotateX(3deg);transition:transform .7s cubic-bezier(.2,.7,.2,1);animation:nrfloat 6s ease-in-out 1s infinite alternate}
.nrstage.sm .nrb3d{--d:19px}
@keyframes nrfloat{to{translate:0 -8px}}
.nrbk:hover .nrb3d{transform:rotateY(-16deg) rotateX(3deg);animation-play-state:paused}
.nrb3d img,.nrb3d .nrph{display:block;position:relative;z-index:2;width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;margin:0;border-radius:1px 4px 4px 1px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);transform:translateZ(calc(var(--d) / 2))}
.nrb3d .spine,.nrb3d .gloss{position:absolute;inset:0;pointer-events:none;border-radius:1px 4px 4px 1px;transform:translateZ(calc(var(--d) / 2 + .5px))}
.nrb3d .spine{z-index:3;background:linear-gradient(90deg,rgba(0,0,0,.35) 0,rgba(0,0,0,.08) 1.5%,rgba(255,255,255,.14) 2.6%,rgba(0,0,0,.1) 4%,transparent 7%),linear-gradient(90deg,rgba(255,255,255,.08),transparent 45%,rgba(0,0,0,.12)),linear-gradient(180deg,rgba(255,255,255,.12),transparent 25%,transparent 80%,rgba(0,0,0,.12))}
.nrb3d .gloss{z-index:4;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.22) 42%,rgba(255,255,255,.06) 50%,transparent 60%);background-size:250% 100%;background-position:100% 0;transition:background-position 1.2s cubic-bezier(.2,.7,.2,1)}
.nrbk:hover .nrb3d .gloss{background-position:0 0}
.nrb3d .pages{position:absolute;z-index:1;top:1%;height:98%;width:calc(var(--d) - 3px);left:calc(100% - var(--d) / 2 - 2.5px);transform-origin:center;transform:rotateY(90deg);border-radius:0 2px 2px 0;background:linear-gradient(90deg,rgba(255,255,255,.35),rgba(0,0,0,.08)),repeating-linear-gradient(90deg,#fffdf8 0 1px,#efe9dc 1px 2px)}
.nrb3d .top{position:absolute;z-index:1;left:2px;width:calc(100% - 6px);height:calc(var(--d) - 3px);top:calc(1.2% - var(--d) / 2 + 1.5px);transform-origin:center;transform:rotateX(90deg);background:linear-gradient(90deg,#e9e2d3,#f7f2e8 60%,#ddd5c4)}
.nrb3d .back{position:absolute;inset:0;z-index:0;border-radius:1px 4px 4px 1px;background:linear-gradient(90deg,#1d1a17,#3a332c);transform:translateZ(calc(var(--d) / -2))}
.nrb3d:after{content:"";position:absolute;inset:0;z-index:0;border-radius:2px 5px 5px 2px;transform:translateZ(calc(var(--d) / -2));box-shadow:30px 34px 50px -14px rgba(18,18,18,.5),10px 12px 20px -8px rgba(18,18,18,.35)}
.nrbk{padding:10px 26px 22px 6px}
@media(max-width:700px){.nrb3d{--d:14px}.nrbk{padding:6px 14px 14px 2px}}
/* the timeline line is placed through the dot centres by nrhome.js; this is only the no-script fallback */
.nrline{transition:none}
.nrspot{grid-template-columns:250px 1fr}.nrcount{grid-template-columns:200px 1fr}.nrbk.sm{max-width:200px}
.nrb3d{--d:34px;transform:rotateY(-32deg) rotateX(3deg)}.nrstage.sm .nrb3d{--d:28px}
.nrbk:hover .nrb3d{transform:rotateY(-18deg) rotateX(3deg)}
@media(max-width:1100px){.nrspot{grid-template-columns:210px 1fr}}
@media(max-width:700px){.nrspot,.nrcount{grid-template-columns:120px 1fr}.nrb3d,.nrstage.sm .nrb3d{--d:16px}}
.nrtabs:not(.pl) button.on{background:var(--ink)}.nrtabs:not(.pl) .nrpill{display:none}
/* 1.26.6: same rule on the homepage cards: the outline sits inside the card, never in the gap */
.nrc{padding:8px;border-radius:14px}.nrc.nrrvd{background:linear-gradient(180deg,#f3fbd7,rgba(255,255,255,0) 70%);box-shadow:inset 0 0 0 2px #d7f36b}
.nrc.nrrvd .nrcf{outline:none}
.nrrow{gap:26px 16px}

/* timeline day columns: a little air between them on phones */
@media(max-width:700px){.nrdays{gap:4px}}
