:root{
  --gpj-ink:#171717;
  --gpj-text:#2b2d30;
  --gpj-muted:#6d7178;
  --gpj-line:#dfe2e5;
  --gpj-soft:#f3f4f4;
  --gpj-ivory:#f6f3ed;
  --gpj-white:#fff;
  --gpj-red:#9c2031;
  --gpj-red-bright:#c52e40;
  --gpj-green:#2b6655;
  --gpj-shell:1240px;
  --gpj-content:780px;
  --gpj-radius:20px;
  --gpj-shadow:0 20px 60px rgba(20,24,28,.09);
  --term-color:#8d1e2d;
  --term-soft:#f8ecef;
}
*{box-sizing:border-box}
/* Ensure native hidden state cannot be overridden by component display rules. */
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--gpj-text);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","Meiryo",sans-serif;font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.gpj-menu-open,body.gpj-search-open{overflow:hidden}
a{color:inherit;text-decoration:none}
a:hover{color:var(--gpj-red)}
img{display:block;max-width:100%;height:auto}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.gpj-shell{width:min(calc(100% - 48px),var(--gpj-shell));margin-inline:auto}
.gpj-section{padding:112px 0}
.gpj-section--soft{background:var(--gpj-soft)}
.gpj-section--dark{background:var(--gpj-ink);color:#fff}
.gpj-eyebrow{margin:0 0 13px;color:var(--gpj-red);font-size:11px;font-weight:800;line-height:1.2;letter-spacing:.18em;text-transform:uppercase}
.gpj-skip-link{position:fixed;left:16px;top:-60px;z-index:10000;background:#fff;color:#000;padding:12px 18px;border-radius:8px;box-shadow:var(--gpj-shadow)}
.gpj-skip-link:focus{top:16px}
.gpj-reading-progress{position:fixed;inset:0 0 auto;height:3px;z-index:9999;pointer-events:none}
.gpj-reading-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--gpj-red),#ee6d5a)}

/* Section headings */
.gpj-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:48px;padding-bottom:24px;border-bottom:1px solid var(--gpj-line)}
.gpj-section-head h2{margin:0;color:var(--gpj-ink);font-size:clamp(28px,3vw,43px);line-height:1.35;letter-spacing:-.035em}
.gpj-section-head>div>p:last-child:not(.gpj-eyebrow){margin:10px 0 0;color:var(--gpj-muted);font-size:13px}
.gpj-section-head>a{flex:0 0 auto;font-size:12px;font-weight:800;border-bottom:1px solid currentColor;padding-bottom:5px}
.gpj-section-head>a span{color:var(--gpj-red);margin-left:8px}
.gpj-section--dark .gpj-section-head{border-color:rgba(255,255,255,.17)}
.gpj-section--dark .gpj-section-head h2{color:#fff}
.gpj-section--dark .gpj-section-head>div>p:last-child:not(.gpj-eyebrow){color:rgba(255,255,255,.58)}

/* Cards */
.gpj-card{background:#fff;position:relative;min-width:0}
.gpj-card__media{display:block;aspect-ratio:16/10;background:#ddd;overflow:hidden}
.gpj-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.gpj-card:hover .gpj-card__media img{transform:scale(1.035)}
.gpj-card__body{padding:23px 1px 1px}
.gpj-card__meta{display:flex;align-items:center;gap:12px;margin-bottom:10px;color:var(--gpj-muted);font-size:9px;font-weight:700;letter-spacing:.03em}
.gpj-card__meta a{color:var(--term-color);font-weight:850}
.gpj-card h3{margin:0;color:var(--gpj-ink);font-size:18px;line-height:1.65;letter-spacing:-.025em}
.gpj-card h3 a{background-image:linear-gradient(var(--term-color),var(--term-color));background-size:0 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .3s}
.gpj-card:hover h3 a{background-size:100% 1px;color:var(--gpj-ink)}
.gpj-card__body>p{margin:11px 0 16px;color:var(--gpj-muted);font-size:12px;line-height:1.85}
.gpj-card__foot{display:flex;justify-content:space-between;color:#8b8e93;font-size:9px;letter-spacing:.06em}
.gpj-card__foot span:last-child{color:var(--term-color);font-weight:850}
.gpj-card--feature{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);background:#fff;box-shadow:var(--gpj-shadow)}
.gpj-card--feature .gpj-card__media{aspect-ratio:auto;min-height:440px}
.gpj-card--feature .gpj-card__body{padding:42px;display:flex;flex-direction:column;justify-content:center}
.gpj-card--feature h3{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:29px;font-weight:600;line-height:1.6}
.gpj-card--feature .gpj-card__body>p{font-size:13px}
.gpj-card--horizontal{display:grid;grid-template-columns:270px 1fr;gap:28px;padding-bottom:30px;border-bottom:1px solid var(--gpj-line)}
.gpj-card--horizontal .gpj-card__media{aspect-ratio:16/10}
.gpj-card--horizontal .gpj-card__body{padding:2px 0}
.gpj-card--horizontal h3{font-size:21px}
.gpj-compact{display:grid;grid-template-columns:112px 1fr;gap:18px;align-items:center;padding:19px 0;border-bottom:1px solid var(--gpj-line);position:relative}
.gpj-compact__media{aspect-ratio:4/3;overflow:hidden;background:#ddd}
.gpj-compact__media img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.gpj-compact:hover .gpj-compact__media img{transform:scale(1.04)}
.gpj-compact__term{display:block;margin-bottom:6px;color:var(--term-color);font-size:9px;font-weight:850}
.gpj-compact h3{margin:0;color:var(--gpj-ink);font-size:13px;line-height:1.65;letter-spacing:-.015em}
.gpj-compact h3 a:hover{color:var(--term-color)}
.gpj-compact time{display:block;margin-top:7px;color:#92959a;font-size:9px}
.gpj-compact__rank{position:absolute;left:-11px;top:12px;z-index:2;display:grid;place-items:center;width:34px;height:34px;background:var(--gpj-red);color:#fff;border-radius:50%;font-size:9px;font-weight:900}

/* Breadcrumbs */
.gpj-breadcrumb{padding:18px 0;color:#8b8e93;font-size:9px;overflow:hidden}
.gpj-breadcrumb ol{display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:0;white-space:nowrap}
.gpj-breadcrumb li{max-width:420px;overflow:hidden;text-overflow:ellipsis}
.gpj-breadcrumb li+li:before{content:"/";margin:0 10px;color:#bbb}
.gpj-breadcrumb a:hover{color:var(--gpj-red)}

/* Pagination + 404 */
.gpj-pagination{display:flex;justify-content:center;gap:6px;margin-top:65px}
.gpj-pagination .page-numbers{display:grid;place-items:center;min-width:40px;height:40px;border:1px solid #d4d7da;background:#fff;font-size:11px}
.gpj-pagination .current{background:var(--gpj-ink);color:#fff;border-color:var(--gpj-ink)}
.gpj-pagination a:hover{border-color:var(--gpj-red);color:var(--gpj-red)}
.gpj-404{min-height:70vh;display:grid;place-items:center;padding:80px 0;text-align:center;background:var(--gpj-ivory)}
.gpj-404>div>span{display:block;font-family:Georgia,serif;font-size:150px;line-height:.8;color:rgba(156,32,49,.12)}
.gpj-404 h1{margin:20px 0;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:48px;font-weight:500}
.gpj-404>div>p:not(.gpj-eyebrow){max-width:600px;margin:0 auto 30px;color:var(--gpj-muted)}
.gpj-404 form{max-width:650px;margin:0 auto}
.gpj-404>div>div{display:flex;justify-content:center;gap:12px;margin-top:25px}
.gpj-404>div>div a{padding:11px 18px;border:1px solid #aaa;font-size:11px;font-weight:800}

/* Japanese line-breaking and readable rhythm. */
:where(h1,h2,h3,h4,h5,h6,.gpj-card h3,.gpj-compact h3,.gpj-section-head h2){
  line-break:strict;
  word-break:normal;
  overflow-wrap:break-word;
  text-wrap:pretty;
}
:where(p,li,dd,dt,figcaption){
  line-break:strict;
  word-break:normal;
  overflow-wrap:break-word;
}
@supports (word-break:auto-phrase){
  :where(h1,h2,h3,h4,h5,h6,.gpj-card h3,.gpj-compact h3,.gpj-section-head h2,p,li){word-break:auto-phrase}
}
:where(a,button,input,textarea,select):focus-visible{outline:3px solid color-mix(in srgb,var(--gpj-red) 70%,#fff);outline-offset:3px}
:where(h2,h3,h4)[id]{scroll-margin-top:190px}

/* All featured images keep the complete source image visible. */
.gpj-responsive-thumbnail{display:block;width:100%;max-width:100%;height:100%;object-fit:contain;object-position:center;background:transparent}
.gpj-card__media,.gpj-compact__media,.gpj-lead-story__image{background:linear-gradient(135deg,#f7f5f1,#eceff1);isolation:isolate}
.gpj-card__media,.gpj-card--horizontal .gpj-card__media,.gpj-compact__media{aspect-ratio:16/9}
.gpj-card__media img,.gpj-compact__media img,.gpj-lead-story__image img{object-fit:contain;transform:none!important}
.gpj-card:hover .gpj-card__media img,.gpj-compact:hover .gpj-compact__media img,.gpj-lead-story:hover .gpj-lead-story__image img{transform:none!important}

/* Article cards use the same 16:9 frame and never hard crop. */
.gpj-card--feature{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr)}
.gpj-card--feature .gpj-card__media{aspect-ratio:16/9;min-height:0;align-self:center}
.gpj-card__body{min-width:0}
.gpj-card h3{font-size:clamp(17px,1.5vw,19px);line-height:1.7}
.gpj-card__body>p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.gpj-card--feature .gpj-card__body>p{display:block;overflow:visible}
.gpj-compact{grid-template-columns:148px minmax(0,1fr);gap:20px}
.gpj-compact__media{width:100%}
.gpj-compact h3{font-size:13px;line-height:1.75}

/* Prevent metadata, buttons, and navigation text from breaking awkwardly. */
.gpj-article-header__meta{row-gap:0}
.gpj-article-header__meta>div{min-width:118px}
.gpj-section-head>div{min-width:0}
.gpj-final-cta h2,.gpj-article-cta h2,.gpj-media-trust h2{max-width:22em}
.gpj-nav__list a,.gpj-nav__list button,.gpj-nav__cta,.gpj-header__company{white-space:nowrap}
.gpj-share-row{flex-wrap:wrap}


/* Shared accessible interactions and image frames */
:where(a,button,input,select,textarea):focus-visible{outline:3px solid color-mix(in srgb,var(--gpj-red) 45%,#fff);outline-offset:3px}
:where(h2,h3,h4)[id]{scroll-margin-top:185px}
.gpj-brand__logo{width:150px;height:auto}
.gpj-card__media img,.gpj-compact__media img,.gpj-lead-story__image img{width:100%;height:100%;object-fit:contain;background:linear-gradient(135deg,#f7f5f1,#eceff1)}
.gpj-latest__grid,.gpj-related__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 28px}
.gpj-breadcrumb>span{display:flex;align-items:center;gap:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gpj-breadcrumb .breadcrumb_last{overflow:hidden;text-overflow:ellipsis}


/* v2.0.2 mobile overflow hardening */
html,body{max-width:100%;overflow-x:clip}
main,.gpj-home-hero,.gpj-trending,.gpj-topic-nav,.gpj-popular,.gpj-problem-finder,.gpj-category-feature,.gpj-latest,.gpj-media-trust{max-width:100%;overflow-x:clip}
.gpj-shell,
.gpj-home-hero__intro,
.gpj-home-hero__grid,
.gpj-home-hero__side,
.gpj-category-feature__grid,
.gpj-category-feature__list,
.gpj-latest__grid,
.gpj-related__grid,
.gpj-popular__grid,
.gpj-media-trust__inner,
.gpj-card,
.gpj-card__body,
.gpj-card__media,
.gpj-compact,
.gpj-compact__media,
.gpj-lead-story,
.gpj-lead-story__image,
.gpj-topic-link,
.gpj-problem-finder__list>a,
.gpj-header__main,
.gpj-brand,
.gpj-brand__text{min-width:0;max-width:100%}
.gpj-card__media,
.gpj-compact__media,
.gpj-lead-story__image,
.gpj-card__media img,
.gpj-compact__media img,
.gpj-lead-story__image img{width:100%;max-width:100%}
