/* 3.1.1: hero art. Nothing boring above the fold. */

/* Contour maps on photo-less heroes (drawn by hero-art.js) */
[data-naa-hero].has-contours{position:relative;overflow:hidden}
.naa-contours{position:absolute;top:0;right:0;width:min(62%,900px);height:100%;pointer-events:none;z-index:0;color:currentColor;opacity:.2;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 38%);mask-image:linear-gradient(90deg,transparent 0%,#000 38%)}
.naa-contours path{fill:none;stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke}
.naa-contours path.is-index{stroke-width:1.8}
.naa-contours .naa-contours-g{animation:naaContourDrift 38s ease-in-out infinite alternate;transform-origin:50% 50%}
.naa-contours circle{fill:currentColor}
.naa-contours text{fill:currentColor;font:10px/1 var(--ff-body,system-ui);letter-spacing:.14em}
@keyframes naaContourDrift{from{transform:translate(0,0) rotate(0)}to{transform:translate(-14px,10px) rotate(1.5deg)}}
[data-naa-hero].has-contours>*:not(.naa-contours){position:relative;z-index:1}
.desk-hero.has-contours::after{z-index:0}
@media (max-width:760px){.naa-contours{width:100%;opacity:.12}}

/* Contributor links */
.naa-author-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.naa-al{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 12px;border-radius:99px;border:1px solid currentColor;color:inherit;text-decoration:none;font-size:13px;letter-spacing:.03em;opacity:.9;transition:background .2s,color .2s,opacity .2s}
.naa-al:hover{opacity:1;background:var(--paper,#f4f1ea);color:var(--graphite,#1d1f1e)}
.naa-author-links.is-inline{display:inline-flex;margin:8px 0 0 0;gap:8px;vertical-align:middle}
.naa-author-links.is-inline .naa-al{padding:4px 10px 4px 8px;font-size:12px}
.naa-author-links.is-inline .naa-al:hover{background:var(--graphite,#1d1f1e);color:var(--paper,#f4f1ea)}

/* Author page: postcards and stamp */
.naa-author-hero.has-art{position:relative;overflow:hidden;min-height:560px}
.naa-author-hero.has-art .naa-author-hero-in{position:relative;z-index:2;max-width:760px}
.naa-author-art{position:absolute;right:4%;top:110px;bottom:40px;width:min(44%,560px);z-index:1}
.naa-postcards{position:relative;width:100%;height:100%}
.naa-postcard{position:absolute;width:56%;aspect-ratio:4/3;background:#f6f2e9;padding:9px 9px 34px;box-shadow:0 18px 40px rgba(0,0,0,.45);color:#1d1f1e;text-decoration:none;transition:transform .5s cubic-bezier(.2,.8,.2,1);display:block}
.naa-postcard-img{display:block;width:100%;height:100%;background:#333 center/cover no-repeat;filter:saturate(.9)}
.naa-postcard-cap{position:absolute;left:12px;right:12px;bottom:8px;font:italic 13px/1.2 var(--ff-display,Georgia,serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.naa-postcard.is-1{left:2%;top:4%;transform:rotate(-7deg);z-index:4}
.naa-postcard.is-2{right:0;top:0;transform:rotate(5deg);z-index:3}
.naa-postcard.is-3{left:14%;bottom:2%;transform:rotate(3deg);z-index:2}
.naa-postcard.is-4{right:4%;bottom:8%;transform:rotate(-4deg);z-index:1}
.naa-author-hero:hover .naa-postcard.is-1{transform:rotate(-9deg) translate(-8px,-6px)}
.naa-author-hero:hover .naa-postcard.is-2{transform:rotate(7deg) translate(8px,-6px)}
.naa-author-hero:hover .naa-postcard.is-3{transform:rotate(1deg) translate(-6px,6px)}
.naa-author-hero:hover .naa-postcard.is-4{transform:rotate(-6deg) translate(6px,8px)}
@media (max-width:980px){
  .naa-author-hero.has-art{min-height:0}
  .naa-author-art{position:relative;right:auto;top:auto;bottom:auto;width:auto;height:300px;margin:0 20px 40px}
  .naa-postcard{width:62%}
}
@media (prefers-reduced-motion:reduce){.naa-postcard{transition:none}}

/* By the numbers: live figure */
.naa-figs-hero.has-art .desk-hero-in{max-width:min(620px,100%)}
.naa-figs-rotor{position:absolute;z-index:2;right:56px;bottom:56px;width:min(42%,520px);text-align:right;color:var(--paper,#f4f1ea)}
.naa-figs-rotor-r{font:12px/1 var(--ff-body,system-ui);letter-spacing:.2em;text-transform:uppercase;color:var(--sage-lt,#b8c8a8);margin-bottom:10px}
.naa-figs-rotor-f{font-family:var(--ff-display,Georgia,serif);font-weight:300;font-size:clamp(84px,11vw,180px);line-height:.9;letter-spacing:-.02em;font-variant-numeric:lining-nums}
.naa-figs-rotor-t{font:16px/1.45 var(--ff-body,system-ui);opacity:.82;margin-top:14px;min-height:2.9em}
.naa-figs-rotor-bar{height:2px;background:rgba(244,241,234,.16);margin-top:18px;overflow:hidden}
.naa-figs-rotor-bar i{display:block;height:100%;width:100%;background:var(--sage-lt,#b8c8a8);transform-origin:left;animation:naaFigBar 4.2s linear infinite}
.naa-figs-rotor.is-swap .naa-figs-rotor-f,.naa-figs-rotor.is-swap .naa-figs-rotor-t,.naa-figs-rotor.is-swap .naa-figs-rotor-r{opacity:0;transform:translateY(10px)}
.naa-figs-rotor-f,.naa-figs-rotor-t,.naa-figs-rotor-r{transition:opacity .35s,transform .35s}
@keyframes naaFigBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (max-width:900px){.naa-figs-rotor{position:relative;right:auto;bottom:auto;width:auto;text-align:left;padding:0 20px 36px}.naa-figs-hero.has-art{flex-direction:column-reverse;align-items:stretch}}
@media (prefers-reduced-motion:reduce){.naa-figs-rotor-bar{display:none}}

/* Cherry blossom: petals and a slow bloom */
.xg-hero.is-sakura{position:relative;overflow:hidden}
.xg-hero.is-sakura .xg-in{position:relative;z-index:2}
.sk-bloom{position:absolute;right:6%;top:50%;width:min(32vw,440px);height:auto;z-index:0;opacity:.6;transform:translateY(-42%)}
.sk-bloom g{transform-box:fill-box;transform-origin:center;animation:skSpin 120s linear infinite}
.sk-bloom path{fill:#f7c9d6;stroke:#e48aa5;stroke-width:1.2}
.sk-bloom circle{fill:#f2a7bd}
.sk-bloom line{stroke:#d9607f;stroke-width:1.6;stroke-linecap:round}
@keyframes skSpin{to{transform:rotate(360deg)}}
.sk-petals{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.sk-petals i{position:absolute;top:-30px;width:14px;height:11px;background:#f4b7c9;border-radius:80% 0 80% 0;opacity:.8;animation:skFall linear infinite}
.sk-petals i:nth-child(3n){background:#f9d5df;width:10px;height:8px}
.sk-petals i:nth-child(4n){background:#eea0b6}
.sk-petals i:nth-child(1){left:41%;animation-duration:18.5s;animation-delay:-7.1s}
.sk-petals i:nth-child(2){left:6%;animation-duration:9.7s;animation-delay:-9.6s}
.sk-petals i:nth-child(3){left:46%;animation-duration:14.8s;animation-delay:-16.4s}
.sk-petals i:nth-child(4){left:27%;animation-duration:9.4s;animation-delay:-7.8s}
.sk-petals i:nth-child(5){left:8%;animation-duration:11.4s;animation-delay:-9.9s}
.sk-petals i:nth-child(6){left:7%;animation-duration:17.3s;animation-delay:-2.2s}
.sk-petals i:nth-child(7){left:28%;animation-duration:15.3s;animation-delay:-10.5s}
.sk-petals i:nth-child(8){left:7%;animation-duration:14.8s;animation-delay:-7.1s}
.sk-petals i:nth-child(9){left:28%;animation-duration:9.5s;animation-delay:-15.5s}
.sk-petals i:nth-child(10){left:37%;animation-duration:13.2s;animation-delay:-9.7s}
.sk-petals i:nth-child(11){left:73%;animation-duration:12.1s;animation-delay:-14.7s}
.sk-petals i:nth-child(12){left:23%;animation-duration:10.0s;animation-delay:-10.3s}
.sk-petals i:nth-child(13){left:24%;animation-duration:12.7s;animation-delay:-9.9s}
.sk-petals i:nth-child(14){left:8%;animation-duration:14.6s;animation-delay:-11.1s}
.sk-petals i:nth-child(15){left:63%;animation-duration:15.8s;animation-delay:-7.7s}
.sk-petals i:nth-child(16){left:40%;animation-duration:13.7s;animation-delay:-16.6s}
.sk-petals i:nth-child(17){left:46%;animation-duration:12.0s;animation-delay:-14.3s}
.sk-petals i:nth-child(18){left:89%;animation-duration:16.8s;animation-delay:-1.5s}
.sk-petals i:nth-child(19){left:38%;animation-duration:14.3s;animation-delay:-15.8s}
.sk-petals i:nth-child(20){left:93%;animation-duration:13.5s;animation-delay:-11.0s}
.sk-petals i:nth-child(21){left:9%;animation-duration:10.2s;animation-delay:-7.5s}
.sk-petals i:nth-child(22){left:96%;animation-duration:12.4s;animation-delay:-16.8s}
@keyframes skFall{0%{transform:translate(0,0) rotate(0)}25%{transform:translate(30px,25vh) rotate(90deg)}50%{transform:translate(-10px,50vh) rotate(200deg)}75%{transform:translate(40px,75vh) rotate(290deg)}100%{transform:translate(10px,105vh) rotate(380deg)}}
@media (prefers-reduced-motion:reduce){.sk-petals{display:none}.sk-bloom g{animation:none}}
@media (max-width:760px){.sk-bloom{width:70vw;right:-22vw;opacity:.3}}

/* Author pages as a passport data page (3.1.3) */
.naa-author-hero.is-passport{background-color:var(--graphite,#1d1f1e);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='120' viewBox='0 0 240 120'%3E%3Cg fill='none' stroke='%23b8c8a8' stroke-opacity='.07' stroke-width='1'%3E%3Cpath d='M0 60 Q30 20 60 60 T120 60 T180 60 T240 60'/%3E%3Cpath d='M0 70 Q30 30 60 70 T120 70 T180 70 T240 70'/%3E%3Cpath d='M0 80 Q30 40 60 80 T120 80 T180 80 T240 80'/%3E%3Cpath d='M0 50 Q30 10 60 50 T120 50 T180 50 T240 50'/%3E%3Cpath d='M0 40 Q30 0 60 40 T120 40 T180 40 T240 40'/%3E%3Cpath d='M0 90 Q30 50 60 90 T120 90 T180 90 T240 90'/%3E%3C/g%3E%3C/svg%3E");background-size:240px 120px}
.naa-author-hero.is-passport .naa-author-hero-in{align-items:start;grid-template-columns:190px 1fr}
.naa-author-hero.is-passport .naa-author-hero-photo{display:flex;flex-direction:column;gap:28px;padding-top:6px}
.naa-author-hero.is-passport .naa-author-hero-photo .naa-headshot{width:168px;height:216px;border-radius:3px;object-fit:cover;background:#f6f2e9;padding:6px;box-shadow:0 10px 26px rgba(0,0,0,.45);filter:grayscale(.15) contrast(1.02)}
.naa-author-hero.is-passport .naa-author-hero-photo .naa-headshot.is-mono{display:flex;align-items:center;justify-content:center;font-size:48px;color:#1d1f1e}
.naa-pp-lbl{font:10px/1 var(--ff-body,system-ui);letter-spacing:.2em;text-transform:uppercase;color:var(--sage-lt,#b8c8a8);opacity:.7;margin:18px 0 6px}
.naa-author-hero.is-passport .desk-eyebrow+.naa-pp-lbl{margin-top:14px}
.naa-author-hero.is-passport .naa-author-hero-role{margin-top:0}
.naa-visa{display:flex;flex-direction:column;gap:5px;width:176px;box-sizing:border-box;padding:12px 14px;border:2px solid #c9806a;outline:1px solid #c9806a;outline-offset:3px;color:#d9957f;transform:rotate(-4deg);font:11px/1.25 var(--ff-body,system-ui);letter-spacing:.12em;text-transform:uppercase;opacity:.92;margin-left:-4px}
.naa-visa-k{font-size:9px;letter-spacing:.22em;border-bottom:1px dashed currentColor;padding-bottom:6px}
.naa-visa b{font:400 19px/1.1 var(--ff-display,Georgia,serif);letter-spacing:.02em;text-transform:none}
.naa-visa-d{font-size:9px;letter-spacing:.2em;opacity:.85}
.naa-mrz{position:relative;z-index:2;display:flex;flex-direction:column;gap:4px;padding:0 56px 34px;font:15px/1.2 "OCR B","OCR-B","Courier New",ui-monospace,monospace;letter-spacing:.32em;color:rgba(244,241,234,.28);white-space:nowrap;overflow:hidden}
@media (max-width:980px){
  .naa-author-hero.is-passport .naa-author-hero-in{grid-template-columns:1fr}
  .naa-author-hero.is-passport .naa-author-hero-photo{flex-direction:row;align-items:flex-end;gap:22px}
  .naa-author-hero.is-passport .naa-author-hero-photo .naa-headshot{width:120px;height:154px}
  .naa-mrz{padding:0 20px 24px;font-size:11px;letter-spacing:.18em}
}
.naa-author-hero.is-passport .desk-meta{display:none}
/* 3.1.4: postcards. Only the front card (or the one under the cursor) shows its caption; hovering a card brings it to the front. */
.naa-postcard-cap{opacity:0;transition:opacity .25s}
.naa-postcard.is-1 .naa-postcard-cap{opacity:1}
.naa-postcards:hover .naa-postcard .naa-postcard-cap{opacity:0}
.naa-postcards .naa-postcard:hover .naa-postcard-cap{opacity:1}
.naa-postcard{transition:transform .5s cubic-bezier(.2,.8,.2,1),scale .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.naa-postcards .naa-postcard:hover{z-index:10;scale:1.06;box-shadow:0 26px 60px rgba(0,0,0,.6)}
@media (prefers-reduced-motion:reduce){.naa-postcards .naa-postcard:hover{scale:1}}
