/* The Digital Edition — the homepage as one full-width broadsheet.
   Ink on cream, teal accent; sections alternate cream and ink bands. */
.np{--ink:#1E1A2B;--paper:#F4EBDD;--paper2:#EBDFCB;--teal:#2BB3A3;--teal-ink:#1D7F74;--rule:rgba(30,26,43,.85);
  --display:'Antonio','Oswald',Impact,sans-serif;--serif:'Playfair Display',Georgia,serif;--mast:'Bodoni Moda','Playfair Display',serif;--sans:'DM Sans',system-ui,sans-serif;
  --gut:clamp(16px,4vw,56px);
  background:var(--paper);color:var(--ink);font-family:var(--sans);overflow-x:clip;
  background-image:radial-gradient(rgba(30,26,43,.035) 1px,transparent 1.2px);background-size:5px 5px}
.np a{color:inherit}
/* Headings follow their band's ink (the site's global heading colour would print dark on the black bands). */
.np :is(h1,h2,h3,h4,p,blockquote,figcaption,li,dt,dd){color:inherit}
.np-wrap{max-width:1440px;margin:0 auto;padding-inline:var(--gut);container-type:inline-size}
.np-band{padding-block:clamp(48px,8vw,110px)}
.np-band--ink{background:var(--ink);color:var(--paper);background-image:none}
.np-band--tint{background:var(--paper2)}

/* Dateline, masthead, section nav */
.np-top{padding-top:clamp(78px,9vw,96px)}
.np-date{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.74rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding-bottom:8px;border-bottom:1px solid var(--rule);animation:npFade .8s .1s both}
.np-mast{margin:clamp(4px,1vw,10px) 0 0;text-align:center;font-family:var(--mast);font-weight:900;line-height:.95;letter-spacing:-.02em;font-size:10vw;font-size:10.4cqi;white-space:nowrap;overflow:hidden}
.np-mast span{display:inline-block;animation:npDrop .9s cubic-bezier(.2,1.5,.4,1) both;animation-delay:calc(.2s + var(--i) * .045s)}
@keyframes npDrop{from{opacity:0;transform:translateY(-.6em) rotate(-8deg)}to{opacity:1;transform:none}}
@keyframes npFade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.np-sub{display:flex;justify-content:center;gap:clamp(12px,3vw,34px);flex-wrap:wrap;margin-top:clamp(6px,1vw,10px);padding:8px 0;border-top:3px double var(--ink);border-bottom:3px double var(--ink);font-weight:700;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;animation:npFade .8s .9s both}
.np-sub a{text-decoration:none}.np-sub a:hover{color:var(--teal-ink)}
.np-tick{overflow:hidden;background:var(--ink);color:var(--paper);margin-top:12px;padding:10px 0;font-weight:700;font-size:.82rem;letter-spacing:.04em}
.np-tick div{display:flex;gap:44px;white-space:nowrap;width:max-content;animation:npTick 40s linear infinite}
.np-tick span::before{content:'●';margin-right:12px;color:var(--teal)}
@keyframes npTick{to{transform:translateX(-50%)}}

/* Front page */
.np-front{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(20px,3.4vw,52px);padding-block:clamp(22px,3vw,40px) clamp(40px,6vw,80px);animation:npFade 1s 1s both}
.np-kicker{margin:0 0 8px;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-ink)}
.np-band--ink .np-kicker{color:var(--teal)}
.np-h1{margin:0;font-family:var(--serif);font-weight:900;font-size:clamp(2.3rem,5.4vw,5.2rem);line-height:1;letter-spacing:-.015em}
.np-h1 em{font-style:italic;color:var(--teal-ink)}
.np-dek{margin:16px 0 0;font-family:var(--serif);font-style:italic;font-size:clamp(1.1rem,1.7vw,1.4rem);line-height:1.45}
.np-byline{margin:16px 0;padding:8px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);font-size:.8rem;letter-spacing:.04em}
.np-body{columns:2 250px;column-gap:30px;column-rule:1px solid rgba(30,26,43,.25);font-size:1.02rem;line-height:1.65}
.np-body p{margin:0 0 12px}
.np-drop::first-letter{float:left;font-family:var(--mast);font-weight:900;font-size:4.4em;line-height:.8;padding:6px 8px 0 0}
.np-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.np-btn{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 22px;border:2px solid currentColor;font-weight:700;text-decoration:none;transition:transform .2s cubic-bezier(.2,1.4,.4,1),box-shadow .2s}
.np-btn--ink{background:var(--ink);color:var(--paper)!important;border-color:var(--ink)}
.np-band--ink .np-btn--ink{background:var(--paper);color:var(--ink)!important;border-color:var(--paper)}
.np-btn:hover{transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--teal)}
.np-oval{display:inline-flex;align-items:center;justify-content:center;min-height:68px;padding:0 46px;border:2px solid currentColor;border-radius:50%;font-family:var(--display);font-weight:700;font-size:clamp(1.5rem,2.8vw,2.4rem);text-transform:uppercase;text-decoration:none;transition:background .25s,color .25s}
.np-oval:hover{background:var(--ink);color:var(--paper)!important}
.np-band--ink .np-oval:hover{background:var(--paper);color:var(--ink)!important}
.np-side{display:flex;flex-direction:column;gap:18px}
.np-comic{position:relative;margin:0;border:2px solid var(--ink);background:#fff;transform:rotate(1.2deg);box-shadow:8px 8px 0 rgba(30,26,43,.15);transition:transform .4s cubic-bezier(.2,1.4,.4,1)}
.np-comic:hover{transform:rotate(0)}
.np-comic img{display:block;width:100%;height:auto}
.np-comic figcaption{padding:7px 12px;font-size:.78rem;font-style:italic;border-top:2px solid var(--ink);background:var(--paper)}
.np-stamp{position:absolute;left:-14px;bottom:62px;padding:8px 14px;border:3px solid var(--teal-ink);color:var(--teal-ink);background:var(--paper);font-weight:700;font-size:.8rem;letter-spacing:.12em;transform:rotate(-9deg);animation:npStamp .5s 1.6s cubic-bezier(.2,1.6,.4,1) both}
@keyframes npStamp{from{opacity:0;transform:scale(2.2) rotate(-16deg)}to{opacity:1;transform:rotate(-9deg)}}
.np-stats{border-top:3px solid var(--ink);border-bottom:1px solid var(--ink);padding:12px 0}
.np-stats h2{margin:0 0 10px;font-family:var(--display);font-size:1.2rem;letter-spacing:.08em;text-transform:uppercase}
.np-stats dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}
.np-stats dt{font-family:var(--mast);font-weight:900;font-size:clamp(1.9rem,2.8vw,2.6rem);line-height:1}
.np-stats dd{margin:2px 0 0;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}

/* Section headers: huge condensed word, wipes in */
.np-head{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:clamp(12px,2.4vw,32px);margin-bottom:clamp(22px,3.4vw,44px)}
.np-word{font-family:var(--display);font-weight:700;text-transform:uppercase;line-height:.82;font-size:clamp(4.2rem,15vw,13rem);letter-spacing:-.01em;clip-path:inset(0 100% 0 0);transition:clip-path 1s cubic-bezier(.7,0,.2,1)}
.np-head.in .np-word{clip-path:inset(-10% -2% -10% 0)}
.np-band--ink .np-word{color:var(--paper)}
.np-word--box{background:var(--ink);color:var(--paper);padding:.05em .14em 0}
.np-head-side{border-bottom:3px double currentColor;padding-bottom:10px}
.np-head-side h2{margin:0 0 6px;font-family:var(--serif);font-weight:900;font-size:clamp(1.5rem,3.2vw,2.8rem);line-height:1.05}
.np-head-side h2 em{color:var(--teal-ink)}
.np-band--ink .np-head-side h2 em{color:var(--teal)}
.np-head-side p{margin:0;font-family:var(--serif);font-style:italic;font-size:clamp(.98rem,1.3vw,1.15rem)}

.rv{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .8s cubic-bezier(.2,.8,.25,1)}
.rv.in{opacity:1;transform:none}

/* Case files (ink band): lead exhibit + swipeable rail */
.np-lead-ex{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(18px,3vw,44px);align-items:center;text-decoration:none}
.np-lead-ex .ph{border:2px solid var(--paper);overflow:hidden;aspect-ratio:4/3}
.np-lead-ex img{width:100%;height:100%;object-fit:cover;object-position:top;filter:grayscale(1) contrast(1.05);transition:filter .6s,transform .8s cubic-bezier(.2,.8,.25,1)}
.np-lead-ex:hover img{filter:none;transform:scale(1.03)}
.np-ex-tag{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.np-ex-title{margin:8px 0 10px;font-family:var(--serif);font-weight:900;font-size:clamp(2rem,4.4vw,3.8rem);line-height:1}
.np-tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 12px}
.np-tags span{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:1px solid currentColor;padding:3px 8px}
.np-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:clamp(14px,2vw,26px);overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 0 18px;margin-top:clamp(28px,4vw,52px);scrollbar-width:thin;scrollbar-color:var(--teal) transparent}
.np-card{scroll-snap-align:start;display:block;text-decoration:none;border-top:3px solid currentColor;padding-top:12px}
.np-card .ph{aspect-ratio:4/3;overflow:hidden;border:1px solid currentColor}
.np-card img{width:100%;height:100%;object-fit:cover;object-position:top;filter:grayscale(1) contrast(1.05);transition:filter .5s,transform .7s cubic-bezier(.2,.8,.25,1)}
.np-card:hover img{filter:none;transform:scale(1.05)}
.np-card h3{margin:12px 0 4px;font-family:var(--serif);font-size:1.35rem;line-height:1.15}
.np-card p{margin:0;font-size:.88rem;opacity:.85}
.np-center{text-align:center;margin-top:clamp(26px,3.4vw,44px)}

/* Services: newspaper index rows */
.np-index{border-top:3px solid var(--ink)}
.np-row{display:grid;grid-template-columns:clamp(70px,9vw,140px) minmax(0,1.1fr) minmax(0,1.4fr) auto;gap:clamp(12px,2.4vw,32px);align-items:center;padding:clamp(18px,2.6vw,30px) clamp(8px,1vw,14px);border-bottom:1px solid var(--ink);text-decoration:none;position:relative;isolation:isolate}
.np-row::before{content:'';position:absolute;inset:0;background:var(--ink);transform:scaleY(0);transform-origin:bottom;transition:transform .45s cubic-bezier(.7,0,.2,1);z-index:-1}
.np-row:hover::before{transform:scaleY(1)}
.np-row:hover{color:var(--paper)}
.np-row-num{font-family:var(--mast);font-weight:900;font-size:clamp(2.6rem,5.6vw,5rem);line-height:.9;color:var(--teal-ink)}
.np-row:hover .np-row-num{color:var(--teal)}
.np-row h3{margin:0;font-family:var(--serif);font-weight:900;font-size:clamp(1.4rem,2.6vw,2.3rem);line-height:1.05}
.np-row p{margin:0;line-height:1.6}
.np-row-go{font-family:var(--display);font-size:clamp(1.6rem,3vw,2.6rem);transition:transform .3s}
.np-row:hover .np-row-go{transform:translateX(6px)}

/* How it works: stepper */
.np-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,3vw,40px);position:relative;list-style:none;margin:0;padding:0}
.np-steps::before{content:'';position:absolute;left:8%;right:8%;top:38px;border-top:2px dashed var(--ink)}
.np-step{position:relative;text-align:center}
.np-step i{display:inline-flex;align-items:center;justify-content:center;width:76px;height:76px;border-radius:50%;background:var(--paper);border:3px solid var(--ink);font-style:normal;font-family:var(--mast);font-weight:900;font-size:1.9rem;position:relative}
.np-step:nth-child(2) i{background:var(--teal)}
.np-step h3{margin:14px 0 6px;font-family:var(--serif);font-weight:900;font-size:clamp(1.4rem,2.4vw,2rem)}
.np-step p{margin:0 auto;max-width:34ch;line-height:1.6}

/* Profile */
.np-profile{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(20px,3.4vw,52px)}
.np-pull{margin:0 0 18px;font-family:var(--serif);font-weight:900;font-size:clamp(1.6rem,3.2vw,2.8rem);line-height:1.12}
.np-pull em{color:var(--teal-ink)}
.np-time{list-style:none;margin:0;padding:0;border-top:3px solid var(--ink)}
.np-time li{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid rgba(30,26,43,.3)}
.np-time b{font-family:var(--display);font-size:1.05rem;letter-spacing:.04em}
.np-time span{font-size:.92rem;line-height:1.5}

/* Letters */
.np-feature-q{margin:0 0 clamp(26px,4vw,50px);display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(10px,2vw,28px);align-items:start}
.np-feature-q::before{content:'“';font-family:var(--mast);font-weight:900;font-size:clamp(7rem,14vw,12rem);line-height:.7;color:var(--teal-ink)}
.np-feature-q blockquote{margin:0;font-family:var(--serif);font-weight:700;font-size:clamp(1.4rem,2.8vw,2.4rem);line-height:1.25}
.np-feature-q figcaption{margin-top:14px;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}
.np-letters{columns:3 270px;column-gap:30px;column-rule:1px solid rgba(30,26,43,.3)}
/* Letters keep the earlier edition's look: ruled columns, big drop-cap first letter. */
.np-letter{break-inside:avoid;margin:0 0 26px}
.np-letter blockquote{margin:0;font-family:var(--serif);font-size:1.02rem;line-height:1.55}
.np-letter blockquote::first-letter{font-family:var(--mast);font-weight:900;font-size:2.3em;line-height:.8;padding-right:2px}
.np-letters{border-top:3px double var(--ink);padding-top:22px}
.np-letter figcaption{margin-top:8px;font-size:.76rem;letter-spacing:.06em;text-transform:uppercase}
.np-letter figcaption b{display:block;letter-spacing:.02em;text-transform:none;font-size:.95rem}
.np-more-letters summary{cursor:pointer;list-style:none;display:flex;justify-content:center}
.np-more-letters summary::-webkit-details-marker{display:none}

/* Puzzle corner (ink band) */
.np-puzzle{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(20px,4vw,60px);align-items:center}
.np-cross{display:grid;grid-template-columns:repeat(5,clamp(34px,5vw,54px));gap:3px}
.np-cross i{aspect-ratio:1;border:1.5px solid var(--paper);display:flex;align-items:center;justify-content:center;font-style:normal;font-family:var(--display);font-weight:700;font-size:clamp(1rem,2vw,1.5rem);color:var(--paper)}
.np-cross i.b{background:var(--paper)}
.np-cross i.t{background:var(--teal);color:var(--ink);border-color:var(--teal)}
.np-puzzle h3{margin:0 0 10px;font-family:var(--serif);font-weight:900;font-size:clamp(1.6rem,3.4vw,3rem);line-height:1.08}

/* Classifieds */
.np-class{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:clamp(20px,3.4vw,52px)}
.np-ads{display:grid;gap:12px;align-content:start}
.np-ad{border:1.5px dashed var(--ink);padding:14px 16px;text-decoration:none;display:block;transition:background .2s}
a.np-ad:hover{background:var(--paper2)}
.np-ad b{display:block;font-family:var(--display);font-size:1.15rem;letter-spacing:.05em;text-transform:uppercase}
.np .contact__form{background:transparent;border:2px solid var(--ink);padding:clamp(16px,2.6vw,30px)}
.np .contact__form input,.np .contact__form select,.np .contact__form textarea{background:#FBF6EC;border:1px solid var(--ink);color:var(--ink);border-radius:0}
.np .contact__form label{color:var(--ink)}
.np .btn--submit{background:var(--ink);color:var(--paper);border-radius:0}

@media (max-width:900px){
  .np-front,.np-profile,.np-class,.np-lead-ex{grid-template-columns:minmax(0,1fr)}
  .np-comic{transform:rotate(0);max-width:520px}
  .np-stats dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .np-head{grid-template-columns:minmax(0,1fr);gap:10px}
  .np-word{font-size:clamp(4.6rem,24vw,9rem)}
  .np-row{grid-template-columns:auto minmax(0,1fr) auto;row-gap:6px}
  .np-row p{grid-column:2 / 4}
  .np-row-go{grid-row:1;grid-column:3}
  .np-steps{grid-template-columns:minmax(0,1fr);gap:26px}
  .np-steps::before{left:37px;right:auto;top:20px;bottom:20px;border-top:0;border-left:2px dashed var(--ink)}
  .np-step{text-align:left;display:grid;grid-template-columns:76px minmax(0,1fr);gap:0 16px}
  .np-step h3{margin-top:4px}
  .np-step p{grid-column:2;margin:0}
  .np-rail{grid-auto-columns:78%;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);scroll-padding-inline:var(--gut)}
  .np-feature-q{grid-template-columns:minmax(0,1fr)}
  .np-feature-q::before{font-size:6rem;line-height:.5;margin-bottom:-10px}
}
@media (max-width:560px){
  .np-puzzle{grid-template-columns:minmax(0,1fr)}
  .np-date span:nth-child(2){display:none}
  .np-sub{font-size:.7rem;gap:10px 16px}
  .np-body{columns:1}
}
@media (prefers-reduced-motion: reduce){
  .np-date,.np-sub,.np-front,.np-mast span,.np-stamp{animation:none}
  .np-tick div{animation:none}
  .np-word{clip-path:none;transition:none}
  .rv{opacity:1;transform:none;transition:none}
}
