:root{font-family:system-ui,-apple-system,"Segoe UI","Noto Sans JP",sans-serif;color:#18313f;background:#fff;font-size:16px;line-height:1.75;--accent:#076b68;--dark:#123b43;--muted:#526773;--line:#cbd9dd;--soft:#f2f6f6}*{box-sizing:border-box}body{margin:0}a{color:#075e68;text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}a:focus-visible{outline:3px solid #bb6b16;outline-offset:4px;border-radius:2px}.skip-link{position:absolute;left:12px;top:-100px;background:#fff;padding:12px;z-index:10}.skip-link:focus{top:12px}.site-header{border-bottom:1px solid var(--line);background:#fff}.site-header-inner{max-width:1180px;margin:auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.site-brand{display:flex;align-items:center;color:var(--dark);text-decoration:none}.site-brand img{display:block;width:auto;height:54px;max-width:min(330px,55vw);object-fit:contain}.site-header nav{display:flex;gap:6px}.site-header nav a{min-height:44px;display:flex;align-items:center;padding:6px 13px;text-decoration:none;color:var(--dark);font-weight:650}.site-header nav a[aria-current=page]{background:#e4f1f0;border-radius:6px;text-decoration:underline}main{max-width:1180px;margin:auto;padding:26px 24px 64px}.breadcrumb{font-size:14px;margin-bottom:24px}.hero{padding:24px 0 34px;max-width:760px}.eyebrow{margin:0 0 5px;color:var(--accent);font-size:14px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}h1{font-size:clamp(28px,4.5vw,48px);line-height:1.25;margin:0 0 12px;color:var(--dark)}h2{font-size:clamp(23px,3vw,31px);line-height:1.35;margin:0 0 8px;color:var(--dark)}h3{font-size:20px;line-height:1.45;margin:4px 0 9px}p{margin:8px 0}.primary-action,.card-action{display:inline-flex;align-items:center;min-height:44px;margin-top:16px;padding:9px 16px;background:var(--accent);color:#fff;border-radius:6px;font-weight:750;text-decoration:none}.primary-action:after,.card-action:after{content:' →';margin-left:8px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:30px 0 18px}.section-heading>a{min-height:44px;display:flex;align-items:center}.tool-grid,.article-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.tool-card,.article-card{border:1px solid var(--line);border-radius:10px;background:#fff;padding:22px;min-width:0}.tool-card.featured{border-top:3px solid var(--accent)}.card-category,.card-date{font-size:14px;color:var(--muted)}.tool-card dl{margin:16px 0}.tool-card dl div{display:grid;grid-template-columns:54px 1fr;gap:8px;border-top:1px solid #e1e8ea;padding:8px 0}.tool-card dt{font-weight:700}.tool-card dd{margin:0}.card-help{margin-top:12px}.soft-section{background:var(--soft);margin:48px calc(50% - 50vw);padding:14px max(24px,calc((100vw - 1132px)/2)) 42px}.article-card{display:grid;grid-template-columns:minmax(120px,36%) 1fr;gap:18px}.article-card img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:6px}.updates{list-style:none;padding:0;margin:0;max-width:820px}.updates li{display:grid;grid-template-columns:105px 1fr;gap:16px;border-top:1px solid var(--line);padding:14px 0}.updates p{margin:2px 0;color:var(--muted)}.page-heading{max-width:720px;margin-bottom:36px}.site-footer{border-top:1px solid var(--line);padding:28px max(24px,calc((100vw - 1132px)/2));color:var(--muted)}.site-footer nav{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:10px}.site-footer a{min-height:44px;display:flex;align-items:center}@media(max-width:700px){.site-header-inner{align-items:flex-start;flex-direction:column;gap:4px}.site-header nav{width:100%;overflow-x:auto}.site-header nav a{padding-inline:10px}main{padding:22px 16px 48px}.hero{padding-top:8px}.tool-grid,.article-grid{grid-template-columns:1fr}.article-card{grid-template-columns:1fr}.article-card img{max-height:230px}.section-heading{align-items:flex-start}.updates li{grid-template-columns:1fr;gap:2px}.soft-section{padding-inline:16px}}

.article-card{text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease}.article-card:hover{border-color:#7ba8a6;box-shadow:0 4px 16px rgba(18,59,67,.1)}.article-card-copy{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}.article-card-copy>strong{color:var(--dark);font-size:20px;line-height:1.45}.article-summary{color:var(--muted)}.home-news{margin:0 0 26px;padding:15px 0 0;border-top:3px solid var(--dark);border-bottom:1px solid var(--line)}.home-news-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:12px}.home-news-heading h2{font-size:22px}.home-news-heading>a{min-height:44px;display:flex;align-items:center;white-space:nowrap}.home-news-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;list-style:none;margin:0;padding:0}.home-news-list li{min-width:0;border-left:1px solid var(--line)}.home-news-list li:first-child{border-left:0}.home-news-list a{display:grid;grid-template-columns:118px minmax(0,1fr);gap:13px;height:100%;padding:0 16px 16px;color:var(--dark);text-decoration:none}.home-news-list li:first-child a{padding-left:0}.home-news-list li:last-child a{padding-right:0}.home-news-list img{display:block;width:118px;height:79px;object-fit:cover}.home-news-copy{display:flex;flex-direction:column;justify-content:space-between;gap:8px;min-width:0}.home-news-copy>strong{font-size:15px;line-height:1.55}.home-news-meta{display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--muted);font-size:13px}.home-news-list a:hover strong{text-decoration:underline}@media(max-width:900px){.home-news-list{grid-template-columns:1fr}.home-news-list li,.home-news-list li:first-child{border-left:0;border-top:1px solid var(--line)}.home-news-list a,.home-news-list li:first-child a,.home-news-list li:last-child a{grid-template-columns:112px minmax(0,1fr);padding:12px 0}.home-news-list img{width:112px;height:75px}}@media(max-width:700px){.home-news{padding-top:12px}.home-news-list li:nth-child(n+3){display:none}.home-news-heading h2{font-size:20px}.article-card-copy>strong{font-size:18px}}

.tool-card-compact{display:grid;grid-template-rows:auto auto 1fr auto;gap:7px;padding:17px 19px;text-decoration:none;color:inherit;min-height:0;transition:border-color .15s ease,box-shadow .15s ease}.tool-card-compact:hover{border-color:#7ba8a6;box-shadow:0 4px 16px rgba(18,59,67,.1)}.tool-card-compact>strong{font-size:19px;line-height:1.4;color:var(--dark)}.tool-card-description{color:var(--muted);line-height:1.65}.tool-card-compact .card-category{margin:0}@media(max-width:700px){.tool-card-compact{padding:15px 17px}.tool-card-compact>strong{font-size:18px}}
.home-tool-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr))}

@media(min-width:701px){.soft-section .article-card{grid-template-columns:160px minmax(0,1fr);gap:0;padding:0;overflow:hidden}.soft-section .article-card img{width:100%;height:100%;min-height:100%;aspect-ratio:auto;border-radius:0;object-fit:cover}.soft-section .article-card-copy{padding:16px 18px}.soft-section .article-card-copy>strong{font-size:18px;line-height:1.4}.soft-section .article-summary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}}
.home-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:start;margin:12px 0 40px}
.home-overview .section-heading{margin:0 0 14px}
.home-overview .home-tool-grid{grid-template-columns:1fr;gap:12px}
.home-overview .home-news{margin:0;padding:0;border:0}
.home-overview .home-news-heading{margin:0 0 14px}
.home-overview .home-news-list{grid-template-columns:1fr}
.home-overview .home-news-list li,.home-overview .home-news-list li:first-child{border-left:0;border-top:1px solid var(--line)}
.home-overview .home-news-list a,.home-overview .home-news-list li:first-child a,.home-overview .home-news-list li:last-child a{grid-template-columns:112px minmax(0,1fr);padding:12px 0}
.home-overview .home-news-list img{width:112px;height:75px}
.tool-card-compact .tool-card-copy{display:grid;grid-template-rows:auto auto 1fr;gap:7px;min-width:0}
.tool-card-compact .tool-card-copy>strong{font-size:19px;line-height:1.4;color:var(--dark)}
.tool-card-compact.has-thumbnail{grid-template-columns:112px minmax(0,1fr);grid-template-rows:none;gap:0;padding:0;overflow:hidden}
.tool-card-compact.has-thumbnail>img{display:block;width:112px;height:100%;min-height:150px;object-fit:cover}
.tool-card-compact.has-thumbnail .tool-card-copy{padding:14px 16px}
@media(max-width:700px){.tool-card-compact.has-thumbnail{grid-template-columns:96px minmax(0,1fr)}.tool-card-compact.has-thumbnail>img{width:96px}.tool-card-compact .tool-card-copy>strong{font-size:18px}}
@media(min-width:701px){.home-articles .article-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home-articles .article-card{display:flex;flex-direction:column}.home-articles .article-card img{height:160px;min-height:0}.home-articles .article-card-copy{flex:1}}
@media(max-width:900px){.home-overview{grid-template-columns:1fr;gap:30px}}
@media(max-width:700px){.home-overview{margin:4px 0 34px}.home-overview .home-news-list li:nth-child(n+3){display:block}}

.external-resources{margin:28px 0 34px}.external-resources-heading{margin-bottom:10px}.external-resources-heading h2{font-size:21px;margin:0}.external-resources-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;list-style:none;margin:0;padding:0}.external-resources-list li{min-width:0}.external-resources-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:center;column-gap:5px;min-height:64px;padding:9px 11px;border:1px solid var(--line);border-radius:7px;color:var(--dark);text-decoration:none}.external-resources-list a:hover{background:var(--soft);border-color:#7ba8a6}.external-resources-list strong{grid-column:1;font-size:14px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.external-resources-list a>span:nth-child(2){grid-column:1;color:var(--muted);font-size:12px;line-height:1.35}.external-link-arrow{grid-column:2;grid-row:1/3;align-self:center;color:var(--accent);font-size:16px}@media(max-width:900px){.external-resources-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.external-resources-list{grid-template-columns:repeat(2,minmax(0,1fr))}.external-resources{margin:22px 0 30px}}

.footer-social{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:8px;font-size:14px}.footer-social span{color:var(--muted)}.footer-social a{display:inline-flex;align-items:center;min-height:36px;font-weight:700;text-decoration:none}.footer-social a:hover{text-decoration:underline}

.about-content{max-width:820px}.about-content h2{margin-top:36px;padding-bottom:8px;border-bottom:1px solid var(--line)}.about-content h3{margin-top:24px}.about-content p,.about-content li{line-height:1.9}.about-content ul{padding-left:24px}.about-content li+li{margin-top:10px}
.site-brand{max-width:100%}.site-brand img{width:390px;height:auto;max-width:100%}

.featured-tool{display:flex;align-items:center;min-height:290px;margin:0 calc(50% - 50vw) 22px;padding:30px max(24px,calc((100vw - 1132px)/2));background-image:linear-gradient(90deg,rgba(244,251,250,.98) 0%,rgba(244,251,250,.95) 38%,rgba(244,251,250,.66) 58%,rgba(244,251,250,.08) 82%),url('/images/hero-laboratory-v1.jpg');background-size:cover;background-position:center}
.featured-tool-copy{position:relative;max-width:650px;min-width:0}.featured-tool h1{font-size:clamp(30px,3vw,38px);line-height:1.2;margin:4px 0 10px}.featured-tool-description{max-width:610px;margin:0;color:#334f58;font-size:16px;line-height:1.65}.featured-tool-action{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:46px;margin-top:15px;padding:9px 18px;border-radius:7px;background:var(--accent);color:#fff;font-weight:750;text-decoration:none}.featured-tool-action:hover{background:#055854}.featured-tool-note{margin:9px 0 0;color:var(--muted);font-size:13px}.featured-tool-art{display:none}
@media(max-width:820px){.featured-tool{min-height:260px;padding:25px 24px;background-position:62% center}.featured-tool-copy{max-width:560px}.featured-tool h1{font-size:30px}.featured-tool-description{font-size:15px}}
@media(max-width:700px){.featured-tool{display:grid;grid-template-columns:minmax(0,1fr) 84px;align-items:start;gap:12px;min-height:0;margin:0 0 21px;padding:16px;border:1px solid #c9dfdc;border-radius:11px;background:linear-gradient(125deg,#f0f9f8,#fff 70%)}.featured-tool .eyebrow{font-size:11px}.featured-tool h1{font-size:22px;margin:2px 0 8px}.featured-tool-description{font-size:13px;line-height:1.55}.featured-tool-art{display:block}.featured-tool-art img{display:block;width:84px;height:84px;object-fit:cover;border-radius:7px}.featured-tool-action{min-height:44px;margin-top:12px;padding:7px 13px;font-size:14px}.featured-tool-note{display:none}}

.news-heading{border-left:6px solid var(--accent);padding-left:20px}
.news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.news-card{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.news-image{display:block}
.news-image img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.news-card-body{padding:20px}
.news-card h3{margin-top:10px}
.news-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:14px}
.news-category{background:#e4f1f0;color:var(--dark);border-radius:999px;padding:3px 10px;font-weight:750}
.news-read{display:inline-flex;min-height:44px;align-items:center;font-weight:750}
.news-detail{max-width:780px;margin:auto}
.news-detail header{margin-bottom:26px}
.news-lead{font-size:1.12rem;color:var(--muted)}
.news-detail figure{margin:24px 0}
.news-detail figure img{width:100%;height:auto;border-radius:12px}
.news-detail figcaption{font-size:13px;color:var(--muted)}
.source-box{margin-top:34px;padding:20px;border-left:5px solid var(--accent);background:var(--soft)}
.source-box h2{font-size:22px}
@media(max-width:700px){
  .news-grid{grid-template-columns:1fr;gap:12px}
  .news-heading{padding-left:14px}
  .news-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;padding:12px}
  .news-image{align-self:start}
  .news-image img{width:112px;height:84px;aspect-ratio:auto;border-radius:8px}
  .news-card-body{padding:0}
  .news-card h3{font-size:1rem;line-height:1.45;margin:7px 0 0}
  .news-card .news-read{min-height:36px;font-size:.9rem}
  .news-card .news-meta{gap:7px;font-size:12px}
  .news-card .news-category{padding:2px 7px}
}
