/* Original football, grand tour and building brick keepsakes. Covers share the 800 × 1100 catalog canvas. */
.collection-page .nh-cover,.nh-cover{container-type:inline-size;display:block;position:relative;width:100%;max-width:800px;min-height:0;margin:0 auto;padding:0;background:var(--c-bg);color:var(--c-ink);text-align:left;overflow:hidden;font-family:var(--c-body);font-kerning:normal}
.nh-cover *{box-sizing:border-box}
.nh-cover :is(p,h1,b,strong){margin:0;overflow-wrap:anywhere;white-space:pre-line}
.nh-cover-inner{position:relative;display:flex;flex-direction:column;gap:3.2cqw;min-height:137.5cqw;padding:5.5cqw}
.nh-cover .nh-title{display:block;font:500 calc(9.7cqw * var(--c-scale,1))/1.16 var(--c-heading);letter-spacing:-.055em;white-space:pre-line;text-wrap:balance;max-width:100%}
.nh-eyebrow{font:500 1.65cqw/1.6 var(--c-body);letter-spacing:.12em}
.nh-subtitle{font:500 1.72cqw/1.8 var(--c-body);letter-spacing:.09em;white-space:pre-line}
.nh-intro{font:400 2.1cqw/1.75 var(--c-body);white-space:pre-line;max-width:49ch}
.nh-cover .nh-art{display:block;width:100%;height:auto;max-width:100%;overflow:visible}
.nh-recipient{min-width:0;display:grid;gap:1.2cqw}
.nh-recipient>span{font:500 1.45cqw/1.6 var(--c-body);letter-spacing:.18em}
.nh-recipient .nh-name{font:500 calc(3.15cqw * var(--c-scale,1))/1.4 var(--c-heading);overflow-wrap:anywhere}
.nh-cover .nh-date{font:400 1.8cqw/1.6 var(--c-body);white-space:nowrap;font-variant-numeric:tabular-nums}
.nh-link{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;min-height:44px;max-width:100%;border-bottom:1px solid currentColor;color:inherit;text-decoration:none;font:500 12px/1.7 var(--c-body)}
.nh-link svg{width:18px;height:18px;flex-shrink:0}
.nh-link:focus-visible{outline:2px solid currentColor;outline-offset:5px}
.nh-cover .nh-link{font-size:1.55cqw;min-height:5cqw;gap:2cqw;white-space:nowrap}
.nh-cover .nh-link svg{width:2.2cqw;height:2.2cqw}
.nh-cover-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:2.2cqw;margin-top:auto;padding-top:2.5cqw;border-top:1px solid color-mix(in srgb,var(--c-ink) 30%,transparent)}
/* A stadium poster and the front-row ticket tucked beneath it. */
.nh-match-top{display:flex;align-items:center;justify-content:space-between;gap:3cqw}
.nh-match-top .nh-eyebrow{max-width:70%}
.nh-match-badge{display:grid;place-items:center;flex-shrink:0;min-height:9cqw;width:11cqw;padding:1.2cqw;border:2px solid currentColor;border-radius:0 0 40% 40%;font:500 1.35cqw/1.4 var(--c-body);text-align:center;transform:rotate(6deg);background:var(--c-accent)}
.nh-match-heading{margin-top:1cqw;position:relative}
.nh-match-heading .nh-title{font-size:calc(10.3cqw * var(--c-scale,1));letter-spacing:-.055em;max-width:100%}
.nh-match-heading .nh-subtitle{margin-top:2.4cqw;max-width:65ch}
.nh-match-stage{position:relative;margin:0 -1.6cqw 0}
.nh-match-stage .nh-art{width:100%}
.nh-match-sticker{position:absolute;right:.5cqw;top:27%;display:grid;place-items:center;background:var(--c-accent);border:2px solid currentColor;border-radius:50%;width:14cqw;height:14cqw;font:500 1.6cqw/1.5 var(--c-body);text-align:center;transform:rotate(11deg);box-shadow:2px 3px 0 var(--c-bg)}
.nh-match-ticket{display:grid;grid-template-columns:1fr auto;gap:3cqw;border:1.5px solid currentColor;padding:2.5cqw 3cqw;background:var(--c-accent);box-shadow:4px 4px 0 color-mix(in srgb,var(--c-ink) 20%,transparent)}
.nh-ticket-stub{display:flex;flex-direction:column;justify-content:center;gap:1.8cqw;min-width:0;padding-left:3cqw;border-left:1px dashed currentColor}
.nh-ticket-stub>span{font:500 1.25cqw/1.5 var(--c-body);letter-spacing:.13em}
.nh-match-day .nh-cover-bottom{border:0;padding-top:1cqw}
/* A quiet travel print: sun, mountain passes and an original classic car. */
.nh-road-top{display:flex;justify-content:space-between;gap:2cqw;padding-block:1cqw 2.2cqw;border-bottom:1px solid currentColor}
.nh-road-top .nh-eyebrow{max-width:62%;font-size:1.45cqw}
.nh-road-top>span{font:400 1.3cqw/1.8 var(--c-body);letter-spacing:.07em;text-align:right}
.nh-road-heading{padding-top:2.5cqw}
.nh-road-kicker{display:block;font:400 1.4cqw/1.6 var(--c-body);letter-spacing:.14em;color:var(--c-accent);margin-bottom:2.2cqw}
.nh-road-heading .nh-title{font-size:calc(9.2cqw * var(--c-scale,1));letter-spacing:-.06em;line-height:1.18}
.nh-road-stage{margin:-1cqw -5.5cqw -1.5cqw}
.nh-road-stage .nh-art{width:100%}
.nh-road-dedication{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:3cqw;align-items:center;padding-bottom:2.8cqw;border-bottom:1px solid currentColor}
.nh-road-compass{display:grid;place-items:center;width:8cqw;height:8cqw;border:1px solid currentColor;border-radius:50%;font:400 5.6cqw/1 var(--c-heading);color:var(--c-accent)}
.nh-open-road .nh-subtitle{font-size:1.5cqw}
.nh-open-road .nh-cover-bottom{border:0;padding-top:0}
/* A playful instruction booklet with a small isometric world made from studded bricks. */
.nh-brick-top{display:flex;justify-content:space-between;align-items:center;gap:3cqw;border-bottom:2px solid currentColor;padding-bottom:2.3cqw}
.nh-brick-brand{font:500 2.6cqw/1.13 var(--c-body);letter-spacing:-.055em;background:var(--c-accent);border:1.5px solid currentColor;padding:1.5cqw 1.8cqw;box-shadow:3px 3px 0 var(--c-ink);transform:rotate(-4deg);flex-shrink:0}
.nh-brick-top .nh-eyebrow{font-size:1.5cqw;text-align:right;max-width:65%}
.nh-brick-heading{position:relative;padding-top:1.8cqw;padding-right:3cqw}
.nh-brick-heading .nh-title{font-size:calc(9.2cqw * var(--c-scale,1));line-height:1.16;letter-spacing:-.055em}
.nh-brick-plus{position:absolute;right:-1.8cqw;top:-1cqw;font:400 8cqw/1 var(--c-body);color:var(--c-secondary);transform:rotate(12deg)}
.nh-brick-stage{position:relative;margin:-.5cqw -3.2cqw -2cqw}
.nh-brick-stage .nh-art{width:100%}
.nh-brick-label{position:absolute;right:0;bottom:1.8cqw;font:500 1.3cqw/1.6 var(--c-body);letter-spacing:.12em;border-left:2px solid var(--c-secondary);padding-left:1.5cqw;transform:rotate(-5deg)}
.nh-brick-dedication{display:flex;align-items:center;justify-content:space-between;gap:3cqw;padding:2.7cqw 3cqw;border:1.5px solid currentColor;background:var(--c-accent)}
.nh-brick-world .nh-subtitle{font-size:1.45cqw;letter-spacing:.07em}
.nh-brick-world .nh-cover-bottom{border:0;padding-top:0}
/* Full cards retain each hobby's visual language below the cover. */
.collection-page .nh-section{padding:76px max(28px,calc((100vw - 960px)/2));margin:0;max-width:none;font-family:var(--c-body);color:var(--c-ink);background:var(--c-bg);overflow-wrap:anywhere}
.nh-label{font:500 10px/1.8 var(--c-body);letter-spacing:.12em;white-space:pre-line}
.nh-heading .nh-label{color:var(--c-accent)}
.nh-section .nh-section-title{font:500 calc(clamp(34px,4.5vw,55px) * var(--c-scale,1))/1.25 var(--c-heading);letter-spacing:-.045em;white-space:pre-line;margin:15px 0 0;text-wrap:balance}
.nh-text{font:400 14px/1.95 var(--c-body);white-space:pre-line;max-width:62ch}
.nh-message{font:400 15px/2 var(--c-body);white-space:pre-line}
.nh-signature{font:400 24px/1.5 var(--c-heading);white-space:pre-line;margin-top:30px}
.nh-letter-body>.nh-text{margin-top:24px}
.nh-letter-body .nh-message{margin:28px 0 0}
.nh-team-letter{max-width:770px;margin:auto;border:1px solid currentColor;background:color-mix(in srgb,var(--c-accent) 11%,var(--c-bg));padding:0 45px}
.nh-letter-top{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid currentColor;padding:21px 0;margin-bottom:34px}
.nh-letter-top svg{width:23px;height:23px}
.nh-letter-end{padding:20px 0;margin-top:35px;border-top:1px dashed currentColor;font:500 9px/1.7 var(--c-body);letter-spacing:.15em}
.nh-match-day.nh-letter{background:var(--c-ink);color:var(--c-bg)}
.nh-match-day.nh-letter .nh-team-letter{color:var(--c-ink);background:var(--c-bg)}
.nh-match-day .nh-heading .nh-label{color:var(--c-ink)}
.nh-road-letter{display:grid;grid-template-columns:.85fr 1.15fr;gap:66px;align-items:start}
.nh-road-letter aside{padding-top:26px}
.nh-road-letter .nh-letter-body{border-left:1px solid color-mix(in srgb,var(--c-ink) 30%,transparent);padding-left:45px}
.nh-road-letter .nh-message{margin-top:0}
.nh-route-line{position:relative;display:flex;justify-content:space-between;width:80%;margin:45px 0 24px;border-top:1px dashed var(--c-accent)}
.nh-route-line i{width:11px;height:11px;border:2px solid var(--c-accent);border-radius:50%;background:var(--c-bg);margin-top:-6px}
.nh-brick-letter{position:relative;max-width:770px;margin:12px auto 0;border:2px solid currentColor;box-shadow:8px 8px 0 color-mix(in srgb,var(--c-ink) 18%,transparent);background:color-mix(in srgb,var(--c-accent) 15%,var(--c-bg))}
.nh-brick-tabs{display:flex;justify-content:space-around;position:absolute;left:20px;right:20px;top:-21px}
.nh-brick-tabs i{width:16%;height:20px;border:2px solid currentColor;border-bottom:0;border-radius:10px 10px 0 0;background:var(--c-accent)}
.nh-brick-letter-inner{padding:43px 45px}
.nh-build-note{display:block;padding:15px 25px;border-top:2px solid currentColor;text-align:center;background:var(--c-accent)}
.nh-brick-world .nh-heading .nh-label{color:var(--c-ink)}
.nh-story-intro,.nh-gallery-intro{margin-top:22px}
.nh-moments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:42px}
.nh-moment{min-width:0}
.nh-moment .nh-moment-title{font:500 calc(23px * var(--c-scale,1))/1.4 var(--c-heading);letter-spacing:-.025em;white-space:pre-line;margin:13px 0 18px}
.nh-number{display:block;font:500 34px/1.3 var(--c-heading)}
.nh-team-note{border:1px solid color-mix(in srgb,var(--c-ink) 35%,transparent);padding:26px 25px}
.nh-team-note:nth-child(2){background:var(--c-accent);transform:rotate(2deg)}
.nh-jersey{display:grid;place-items:center;width:104px;height:106px;margin:0 auto 26px;background:var(--c-ink);color:var(--c-bg);clip-path:polygon(23% 0,39% 7%,61% 7%,77% 0,100% 21%,84% 39%,76% 32%,76% 100%,24% 100%,24% 32%,16% 39%,0 21%)}
.nh-jersey .nh-number{font-size:30px;padding-top:9px}
.nh-route-note{border-top:1px solid currentColor;padding-top:23px}
.nh-route-marker{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;color:var(--c-accent)}
.nh-route-marker>span:last-child{display:grid;place-items:center;width:40px;height:40px;border:1px solid currentColor;border-radius:50%;font:400 25px/1 var(--c-body)}
.nh-open-road.nh-story{background:color-mix(in srgb,var(--c-secondary) 27%,var(--c-bg))}
.nh-build-note-card{position:relative;margin-top:12px;padding:24px;border:2px solid currentColor;background:var(--c-accent);box-shadow:4px 5px 0 color-mix(in srgb,var(--c-ink) 20%,transparent)}
.nh-build-note-card:nth-child(2){background:color-mix(in srgb,var(--c-secondary) 35%,var(--c-bg))}
.nh-build-note-card:nth-child(3){background:color-mix(in srgb,var(--c-ink) 12%,var(--c-bg))}
.nh-build-note-card .nh-number{font-size:36px;margin-bottom:23px}
.nh-moment-studs{position:absolute;left:0;right:0;top:-14px;display:flex;justify-content:space-around}
.nh-moment-studs i{width:24%;height:13px;border:2px solid currentColor;border-bottom:0;border-radius:7px 7px 0 0;background:var(--c-accent)}
.nh-build-note-card:nth-child(2) .nh-moment-studs i{background:color-mix(in srgb,var(--c-secondary) 35%,var(--c-bg))}
.nh-build-note-card:nth-child(3) .nh-moment-studs i{background:color-mix(in srgb,var(--c-ink) 12%,var(--c-bg))}
.nh-gallery .boys-album{margin-top:46px}
.nh-match-day .boys-photo-fastener{background:var(--c-accent)}
.nh-open-road .boys-photo-tile{box-shadow:0 4px 16px color-mix(in srgb,var(--c-ink) 15%,transparent)}
.nh-brick-world .boys-photo-tile{border:2px solid var(--c-ink);box-shadow:5px 6px 0 color-mix(in srgb,var(--c-accent) 65%,var(--c-bg))}
.nh-closing-layout{display:flex;flex-direction:column;align-items:center;gap:28px;max-width:760px;margin:auto;text-align:center}
.nh-closing-mark{display:grid;place-items:center;width:72px;height:72px;border:1px solid currentColor;border-radius:50%;background:var(--c-accent);color:var(--c-ink);font:400 43px/1 var(--c-heading);transform:rotate(-7deg);flex-shrink:0}
.nh-closing-mark svg{width:30px;height:30px}
.nh-closing .nh-text{margin:25px auto 0}
.nh-closing .nh-link{margin-top:35px}
.nh-brick-world .nh-closing-mark{border-radius:9px;box-shadow:5px 5px 0 var(--c-ink)}
.nh-match-day.nh-closing{background:var(--c-ink);color:var(--c-bg)}
.nh-match-day.nh-closing .nh-heading .nh-label{color:var(--c-bg)}
.nh-open-road.nh-closing{border-top:1px solid color-mix(in srgb,var(--c-ink) 30%,transparent)}
.nh-compact.nh-cover{width:800px;max-width:none;height:1100px;min-height:0}
.nh-compact .nh-cover-inner{min-height:1100px;height:1100px;padding:5cqw;gap:2cqw}
.nh-compact .nh-match-heading .nh-title{font-size:calc(9.5cqw * var(--c-scale,1))}
.nh-compact .nh-road-heading .nh-title,.nh-compact .nh-brick-heading .nh-title{font-size:calc(8.8cqw * var(--c-scale,1))}
.nh-compact .nh-match-stage,.nh-compact .nh-road-stage,.nh-compact .nh-brick-stage{margin-block:0;flex-shrink:0}
.nh-compact .nh-match-stage .nh-art{height:45cqw}
.nh-compact .nh-road-stage .nh-art{height:45cqw}
.nh-compact .nh-brick-stage .nh-art{height:44cqw}
.nh-compact .nh-cover-bottom{gap:1.5cqw;padding-top:1.5cqw}
.nh-compact .nh-intro{font-size:2cqw}
@media(max-width:640px){
 .collection-page .nh-section{padding:58px 24px}
 .nh-cover .nh-eyebrow{font-size:1.85cqw;letter-spacing:.08em}
 .nh-cover .nh-subtitle{font-size:1.9cqw;letter-spacing:.05em}
 .nh-cover .nh-intro{font-size:2.5cqw}
 .nh-cover .nh-link{font-size:1.9cqw;min-height:6.4cqw}
 .nh-cover .nh-date{font-size:2.1cqw}
 .nh-cover .nh-recipient>span{font-size:1.7cqw}
 .nh-cover .nh-name{font-size:calc(3.8cqw * var(--c-scale,1))}
 .nh-match-ticket{grid-template-columns:1fr auto;gap:2cqw}
 .nh-ticket-stub>span{font-size:1.4cqw;max-width:15ch}
 .nh-road-top .nh-eyebrow,.nh-brick-top .nh-eyebrow{font-size:1.7cqw}
 .nh-section .nh-section-title{font-size:calc(35px * var(--c-scale,1))}
 .nh-team-letter{padding:0 24px}
 .nh-letter-top{gap:12px}.nh-letter-top .nh-label{font-size:8px}
 .nh-road-letter{grid-template-columns:1fr;gap:35px}
 .nh-road-letter aside{padding-top:0}
 .nh-road-letter .nh-letter-body{padding-left:0;border:0}
 .nh-route-line{max-width:220px;margin-top:32px}
 .nh-brick-letter-inner{padding:34px 24px}
 .nh-message{font-size:14px}
 .nh-moments{grid-template-columns:1fr;gap:25px}
 .nh-team-note{display:grid;grid-template-columns:85px 1fr;gap:22px;padding:23px 20px}
 .nh-team-note .nh-jersey{width:80px;height:84px;margin:5px 0 0}.nh-team-note .nh-number{font-size:25px}
 .nh-team-note:nth-child(2){transform:none}
 .nh-moment .nh-moment-title{font-size:calc(22px * var(--c-scale,1))}
 .nh-build-note-card{padding:25px}
 .nh-moment-studs{justify-content:flex-start;gap:35px;padding-left:25px}.nh-moment-studs i{width:52px}
 .nh-build-note-card .nh-number{margin-bottom:18px}
 .nh-closing-layout{gap:24px}
 .nh-closing-mark{width:56px;height:56px;font-size:33px}.nh-closing-mark svg{width:24px;height:24px}
}
/* Actual greeting pages keep readable copy and full tap targets at phone widths. Catalog artwork scales as one canvas. */
.nh-cover:not(.nh-compact) .nh-eyebrow{font-size:max(9px,1.65cqw)}
.nh-cover:not(.nh-compact) .nh-subtitle{font-size:max(10px,1.65cqw)}
.nh-cover:not(.nh-compact) .nh-intro{font-size:max(12px,2.1cqw)}
.nh-cover:not(.nh-compact) .nh-date{font-size:max(11px,1.8cqw)}
.nh-cover:not(.nh-compact) .nh-link{font-size:max(12px,1.55cqw);min-height:44px;white-space:normal}
.nh-cover:not(.nh-compact) .nh-link svg{width:max(15px,2.2cqw);height:max(15px,2.2cqw)}
.nh-cover:not(.nh-compact) .nh-recipient>span{font-size:max(9px,1.45cqw)}
.nh-cover:not(.nh-compact) .nh-name{font-size:calc(max(18px,3.15cqw) * var(--c-scale,1))}
.nh-cover:not(.nh-compact) .nh-match-badge{font-size:max(8px,1.35cqw);min-width:58px;min-height:52px}
.nh-cover:not(.nh-compact) .nh-match-sticker{font-size:max(9px,1.6cqw);min-width:56px;min-height:56px}
.nh-cover:not(.nh-compact) .nh-ticket-stub>span{font-size:max(8px,1.25cqw)}
.nh-cover:not(.nh-compact) .nh-road-top>span,.nh-cover:not(.nh-compact) .nh-road-kicker,.nh-cover:not(.nh-compact) .nh-brick-label{font-size:max(8px,1.3cqw)}
.nh-cover:not(.nh-compact) .nh-brick-brand{font-size:max(11px,2.6cqw)}
