/* Homepage footer, shared without depending on a page's typography or layout. */
:root body .lp-footer{position:relative;display:block;width:100%;max-width:none;margin:0;background:#101010;color:#fff;padding:160px 0 40px;overflow:hidden;z-index:1;font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN",sans-serif;font-size:16px;line-height:1.5;letter-spacing:normal;text-align:left}
:root body .lp-footer,:root body .lp-footer *{box-sizing:border-box}
:root body .lp-footer-grid{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:120px 20px;width:100%;max-width:1728px;padding-inline:20px;margin-inline:auto}
:root body .lp-footer-brand{grid-column:3/span 3;align-self:start}
:root body .lp-footer-brand .lp-footer-wordmark{display:block;width:clamp(140px,13vw,188px);height:auto}
:root body .lp-footer nav{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:16px;line-height:1.5;align-items:flex-start}
:root body .lp-footer nav:nth-of-type(1){grid-column:9/span 2}
:root body .lp-footer nav:nth-of-type(2){grid-column:11/span 2}
:root body .lp-footer nav:nth-of-type(3){grid-column:13/span 2}
:root body .lp-footer nav p{color:#999;font-size:14px;line-height:1.5;margin:0 0 12px}
:root body .lp-footer a{color:inherit;text-decoration:none;font-size:inherit;font-weight:400;line-height:inherit}
:root body .lp-footer a:hover{text-decoration:underline}
:root body .lp-footer-legal{grid-column:3/span 12;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:14px;color:#aaa}
:root body .lp-footer-legal>div{display:flex;gap:24px}
:root body .lp-footer-stage{height:360px;position:relative;margin-top:32px;overflow:hidden}
:root body .lp-footer-mark{position:absolute;inset:0;border:0;background:none;display:flex;justify-content:center;align-items:flex-end;width:100%;padding:0;cursor:pointer;color:#fff}
:root body .lp-footer-mark .lp-footer-wordmark{width:88%;height:auto;max-height:100%;opacity:.12;color:#fff}
:root body .lp-footer-icons{position:absolute;inset:0;pointer-events:none}
:root body .lp-footer-icons img{position:absolute;width:64px;height:64px;object-fit:cover;border-radius:16px;will-change:transform}
:root body .lp-footer-particle{position:absolute;display:block;border-radius:25%;overflow:hidden;box-shadow:0 10px 15px -3px #0002;will-change:transform}
:root body .lp-footer-particle img{position:static;width:100%;height:100%;border-radius:0;object-fit:cover}
:root body .lp-footer-particle.is-puff{overflow:visible;border-radius:0;box-shadow:none}
:root body .lp-footer :is(a,button):focus-visible{outline:3px solid #3e79ff;outline-offset:4px}
@media(min-width:768px) and (max-width:1439px){:root body .lp-footer-brand{grid-column:2/span 3}}
@media(max-width:767px){
 :root body .lp-footer{padding-top:80px}
 :root body .lp-footer-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:40px 20px}
 :root body .lp-footer-brand{grid-column:1/-1}
 :root body .lp-footer nav:nth-of-type(1){grid-column:1/span 3}
 :root body .lp-footer nav:nth-of-type(2){grid-column:4/span 3}
 :root body .lp-footer nav:nth-of-type(3){grid-column:1/-1}
 :root body .lp-footer nav{font-size:14px;gap:10px}
 :root body .lp-footer-legal{grid-column:1/-1;display:grid;grid-template-columns:1fr;align-items:flex-start;gap:20px;font-size:14px}
 :root body .lp-footer-legal>div{gap:16px}
 :root body .lp-footer-legal>span{order:3;margin-top:20px}
 :root body .lp-footer-stage{height:220px}
 :root body .lp-footer-mark .lp-footer-wordmark{width:92%}
}
html[data-library-theme] .lp-footer,body.is-reading .lp-footer{display:none!important}

/* Give each link column its natural width and align all three headings. */
:root body .lp-footer-grid {
  grid-template-columns:minmax(140px,1fr) repeat(3,max-content);
  column-gap:clamp(24px,4vw,64px); padding-inline:clamp(24px,5vw,80px);
}
:root body .lp-footer-brand { grid-column:1; }
:root body .lp-footer nav:nth-of-type(1) { grid-column:2; }
:root body .lp-footer nav:nth-of-type(2) { grid-column:3; }
:root body .lp-footer nav:nth-of-type(3) { grid-column:4; }
:root body .lp-footer nav { align-self:start; }
:root body .lp-footer nav :is(p,a) { white-space:nowrap; }
:root body .lp-footer-legal { grid-column:1/-1; }
/* Same color transition and hover feedback as the shared navbar. */
:root body .lp-footer a { opacity:1; transition:color 150ms cubic-bezier(0,0,.2,1); }
:root body .lp-footer a:hover { text-decoration:none; }
@media(hover:hover) {
  :root body .lp-footer a:hover { color:#707070; opacity:.8; background:transparent; }
}
/* Keep mobile links readable and tappable instead of shrinking three columns. */
@media(max-width:767px) {
  :root body .lp-footer { padding-top:48px; }
  :root body .lp-footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; padding-inline:24px; }
  :root body .lp-footer-brand { grid-column:1/-1; }
  :root body .lp-footer nav:nth-of-type(1) { grid-column:1; }
  :root body .lp-footer nav:nth-of-type(2) { grid-column:2; }
  :root body .lp-footer nav:nth-of-type(3) { grid-column:1/-1; }
  :root body .lp-footer nav { font-size:14px; line-height:1.6; gap:0; }
  :root body .lp-footer nav p { font-size:14px; margin-bottom:12px; }
  :root body .lp-footer nav :is(p,a) { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
  :root body .lp-footer nav a { display:flex; align-items:center; min-height:44px; padding-block:8px; }
  :root body .lp-footer-legal { gap:12px; }
  :root body .lp-footer-legal>div { flex-wrap:wrap; gap:8px 24px; }
  :root body .lp-footer-legal a { display:inline-flex; align-items:center; min-height:44px; }
  :root body .lp-footer-legal>span { margin-top:12px; }
}

/* Older release HTML appended an unavailable editorial link outside the footer grid. */
:root body .lp-footer > nav[aria-label="デザイン解説"] { display:none; }
