* {
	color:#000000;                            /*   �����̐F��ς���  */
	padding:0;
	font-size: 12px;
	line-height: 140%;
	margin: 0;
	font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	background-image: none;
}

body {
	background-color: #edf3f8;                /*   �w�i�F��ς���(��ԊO��)  */
/*	background-image: url(img/bg.gif); */
/*        background-image: url(img/back.png); */
/*	background-image: url(img/03.gif);*/
	background-repeat: repeat;
        overflow-y: scroll;
	color: #16202d;

}

a {
	color:#0f2f57;
}

a:hover {
	text-decoration: none;
}

a img {
	border:none;
}

hr {
	clear: both;
	height: 1px;
}

strong {
	color: #0f2f57;
}


.chui {
	font-size: 10px;
	color: #FF0000;
}


/*
�x�[�X
-------------------------------------------------------------------*/

#base {
	width:1000px;                             /*   �\������ς���  */
	margin-right: auto;
	margin-left: auto;
	background-color: #ffffff;                /*   �w�i�F��ς���  */
	margin-top: 0px;
	border: 1px solid #d3dce8;
	box-shadow: 0 18px 44px rgba(17, 35, 58, 0.08);
	box-sizing: border-box;
	overflow: hidden;
}

#wrap {
	float: none;
	padding: 24px 32px 48px;
	margin-top: 0;
	width: auto;
	box-sizing: border-box;
}

#wrap:after {
	content: "";
	display: block;
	clear: both;
}


/*
�w�b�_�[
-------------------------------------------------------------------*/

#header {
	width:auto;
	height:auto;
	padding: 24px 28px 20px;
	border-top: 4px solid #0f2f57;
	border-bottom: 1px solid #d5deea;
	background: linear-gradient(135deg, #f7fafc 0%, #edf3f9 100%);
	box-sizing: border-box;
}


.site-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 24px;
}

.site-brand {
	min-width: 0;
	flex: 1 1 auto;
	background: transparent;
}

.site-brand-link {
	display: inline-flex;
	flex-direction: column;
	background: transparent;
	text-decoration: none;
}

.site-logo-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	text-decoration: none;
}

.site-brand-heading {
	display: flex;
	align-items: center;
	gap: 18px;
	background: transparent;
}

.site-brand-logos {
	display: flex;
	align-items: center;
	gap: 10px;
	background: transparent;
}

.site-brand-copy {
	display: flex;
	flex-direction: column;
	gap: 4px;
	background: transparent;
}

.site-orgline {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #4f6277;
	background: transparent;
}

.site-supertitle {
	display: block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: #5d6f84;
	background: transparent;
}

.site-title {
	display: block;
	font-size: 34px;
	line-height: 1.15;
	font-weight: 800;
	letter-spacing: 0.02em;
	color: #0f2f57;
	background: transparent;
}

.site-tagline {
	margin-top: 12px;
	max-width: 700px;
	font-size: 12px;
	line-height: 1.8;
	color: #526277;
	background: transparent;
}

.site-tools {
	width: auto;
	min-width: 220px;
	padding: 14px 16px;
	border: 1px solid #d5deea;
	background: rgba(255, 255, 255, 0.82);
	box-shadow: 0 10px 24px rgba(17, 35, 58, 0.05);
}


.site-jaea-mark {
	display: block;
	max-width: 150px;
	height: auto;
	background: transparent;
}

.site-jupiter-mark {
	display: block;
	max-width: 120px;
	height: auto;
	background: transparent;
}

.site-language {
	font-size: 12px;
	font-weight: 600;
	color: #13283d;
	background: transparent;
	margin-bottom: 6px;
}

.site-language span {
	margin: 0 6px;
	color: #94a1b3;
	background: transparent;
}

.site-tools-note {
	font-size: 11px;
	line-height: 1.7;
	color: #526277;
	background: transparent;
}

#header .site-header,
#header .site-header *,
#nav,
#nav * {
	font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}


h1 a {
	display: block;
	text-decoration: none;
	width: 390px;
	margin-left: 35px;
	padding-top: 15px;
	font-size: 23px;
	line-height: 33px;
	color: #FFFFFF;
}

#header h1{
	margin-top:60px;
	padding-left:50px;
	font-size:14pt;
	font-family:"Times New Roman";
	color: #0000CC;
}



#header #sub {
	font-size: 12px;
	color: #FFFFCC;
	margin-left: 35px;
}


/*�i�r�Q�[�V����
----------------------------------------------- */

div#nav {
    margin: 0px auto;
	padding: 0 32px;
    width: auto;
    font-size: 14px;
	border-right: none;
	background: rgba(248, 250, 252, 0.94);
	border-bottom: 1px solid #d5deea;
	box-sizing: border-box;
}
div#nav ul#link_nav {
    margin: 0px auto;
	padding: 10px 0;
	width: 100%;
    min-height: 33px;
	border: none;
	background: transparent;
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}
div#nav ul#link_nav li {
    width: auto;
	float: none;
	display: block;
	position: relative;
}
div#nav ul#link_nav li:hover {
    position: relative;
}
div#nav ul#link_nav li a {
    width: auto;
    text-decoration: none;
	border-right: none;
	padding: 10px 16px;
	color: #13283d;
    float: left;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
}
div#nav ul#link_nav li a:hover {
	background: #dfeaf7;
	color: #0f2f57;
}
div#nav ul#link_nav li ul {
    margin: 0px;
    padding: 0px;
    display: none;
}
div#nav ul#link_nav li:hover > ul {
    width: 250px;
	border-top:none;
    display: block;
    position: absolute;
	top: calc(100% + 6px);
    background: none;
    left: 0px;
    z-index: 3;
    text-align: left;
}
div#nav ul#link_nav li ul li {
    width: 100%;
	font-size: 13px;
    background: none;
}
div#nav ul#link_nav li ul li a {
	width: 100%;
	border: 1px solid #cbd7e4;
    border-top: none;
	padding: 10px 12px;
	background: rgba(255, 255, 255, 0.98);
	color: #13283d;
	border-radius: 0;
	box-shadow: 0 18px 40px rgba(20, 34, 54, 0.08);
}
div#nav ul#link_nav li ul li a:hover {
	background: #f3f7fb;
}
div#nav ul#link_nav li ul li:hover ul {
    top: 5px;
    left: 95%;
    z-index: 3;
}
div#nav ul#link_nav li ul li:hover ul li a {
	border: 1px solid #cbd7e4;
    border-top: none;
}


/*
�R���e���c
-------------------------------------------------------------------*/

#contents {
	width:auto;
	float:none;
}

#contents p{
	width:auto;                              /*   �R���e���c�\����   */
	padding: 16px 18px;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
	border: 1px solid #d9e3ee;
	margin: 14px 0;
	line-height: 1.9;
	box-shadow: 0 10px 24px rgba(16, 31, 48, 0.04);
}

#contents h2 {
	width:auto;
	font-size: 24px;
	padding: 0 0 10px 0;
	color: #16202d;
	margin: 24px 0 10px;
	font-weight: bold;
	border-left: none;
	border-bottom: 2px solid #d5deea;
}


#contents h3 {
	width: auto;
	font-size: 18px;
	border-left: 4px solid #0e6b74;
	border-bottom: none;
	padding-left: 10px;
	color: #223142;
	line-height: 1.5;
	margin: 24px 0 12px;
}

#contents h3 a {
	font-size: 14px;
}

#contents h4 {
	font-size: 14px;
	color: #33465c;
	line-height: 1.6;
	margin: 18px 0 10px;
}

#contents ul {
	margin-left: 30px;
	list-style-type: none;
}
#contents li a {
	font-size: 12px;
}


#contents #c_pad {
	width:620px;
	padding: 10px;
        float: left
}

#contents #c_pad p a {
	line-height: 20px;
}

#contents #c_pad p strong {
	line-height: 20px;
}

#contents .publication-list {
	margin: 18px 0 24px;
	background: transparent;
}

#contents .publication-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 18px 0 18px;
	padding: 12px;
	border: 1px solid #d9e3ee;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
	box-shadow: 0 10px 24px rgba(16, 31, 48, 0.04);
}

#contents2 .publication-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 18px 0 18px;
	padding: 12px;
	border: 1px solid #d9e3ee;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
	box-shadow: 0 10px 24px rgba(16, 31, 48, 0.04);
}

#contents .publication-tabs a {
	display: inline-block;
	padding: 10px 16px;
	border: 1px solid #cfdbe8;
	border-radius: 999px;
	background: #ffffff;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
	text-decoration: none;
	color: #0f2f57;
	box-shadow: 0 4px 12px rgba(16, 31, 48, 0.04);
}

#contents2 .publication-tabs a {
	display: inline-block;
	padding: 10px 16px;
	border: 1px solid #cfdbe8;
	border-radius: 999px;
	background: #ffffff;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
	text-decoration: none;
	color: #0f2f57;
	box-shadow: 0 4px 12px rgba(16, 31, 48, 0.04);
}

#contents .publication-tabs a:hover {
	background: #e6f0fa;
}

#contents2 .publication-tabs a:hover {
	background: #e6f0fa;
}

#contents .publication-section {
	margin: 24px 0 32px;
	padding: 20px 22px 10px;
	border: 1px solid #d9e3ee;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
	box-shadow: 0 12px 30px rgba(16, 31, 48, 0.05);
	scroll-margin-top: 24px;
}

#contents .publication-section-title {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	margin: 0 0 18px;
	padding: 0 0 12px;
	font-size: 21px;
	line-height: 1.4;
	color: #16202d;
	border-bottom: 1px solid #d5deea;
	border-left: none;
}

#contents .publication-section-title span {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #607287;
}

#contents .publication-year {
	margin: 22px 0 12px;
	padding: 6px 0 6px 2px;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.04em;
	color: #0f2f57;
	background: transparent;
	border-bottom: 1px solid #d9e3ee;
}

#contents .publication-archive {
	margin: 18px 0 10px;
	padding: 0;
	border: 1px dashed #c7d5e4;
	background: #f8fbfe;
}

#contents .publication-archive summary {
	padding: 14px 18px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.6;
	color: #0f2f57;
	cursor: pointer;
	list-style: none;
	background: linear-gradient(180deg, #f7fbff 0%, #edf4fb 100%);
}

#contents .publication-archive summary::-webkit-details-marker {
	display: none;
}

#contents .publication-archive summary::before {
	content: '+';
	display: inline-block;
	width: 16px;
	margin-right: 8px;
	font-size: 16px;
	font-weight: 700;
	color: #0f2f57;
}

#contents .publication-archive[open] summary::before {
	content: '-';
}

#contents .publication-archive-body {
	padding: 0 18px 12px;
	background: transparent;
}

#contents .publication-empty {
	margin: 0;
	padding: 16px 18px;
	font-size: 14px;
	line-height: 1.9;
	color: #526277;
	background: #f7fafd;
	border: 1px dashed #c7d5e4;
	box-shadow: none;
}

.research-code-list {
	display: grid;
	gap: 16px;
	margin: 18px 0 24px;
	background: transparent;
}

.research-code-item {
	padding: 18px 22px;
	border: 1px solid #d5deea;
	background: linear-gradient(180deg, #fbfdff 0%, #f3f8fc 100%);
	box-shadow: 0 12px 28px rgba(16, 31, 48, 0.08);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.research-code-item:hover,
.research-code-item:focus-within {
	border-color: #99b8d8;
	box-shadow: 0 14px 30px rgba(16, 31, 48, 0.12);
}

.research-code-item h3 {
	margin: 0 0 10px;
	background: transparent;
}

.research-code-item h3 a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #0f2f57;
	text-decoration: underline;
	text-underline-offset: 0.18em;
	text-decoration-thickness: 2px;
	background: transparent;
	transition: color 0.2s ease;
}

.research-code-item h3 a:after {
	content: 'Learn more';
	display: inline-block;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.02em;
	color: #0f2f57;
	background: rgba(15, 47, 87, 0.1);
}

/* Download badge placed next to title link */
.research-code-item h3 a.download {
	margin-left: 8px;
}
.research-code-item h3 a.download:after {
	content: 'Download';
	display: inline-block;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.02em;
	color: #0f2f57;
	background: rgba(15, 47, 87, 0.1);
}

.research-code-item h3 a:hover,
.research-code-item h3 a:focus {
	color: #0a4c86;
}

.research-link-hint {
	margin: 12px 0 0;
	padding-left: 16px;
	font-size: 12px;
	line-height: 1.7;
	color: #4f6277;
	text-indent: 0;
	position: relative;
	background: transparent;
	border: none;
	box-shadow: none;
}

.research-link-hint:before {
	content: 'i';
	position: absolute;
	left: 0;
	top: 0.18em;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	font-size: 9px;
	font-weight: 700;
	line-height: 12px;
	text-align: center;
	color: #ffffff;
	background: #4f7ea8;
}

.research-code-item p {
	margin: 0;
	padding: 0;
	font-size: 14px;
	line-height: 1.9;
	color: #4e6073;
	text-indent: 0;
	border: none;
	box-shadow: none;
	background: transparent;
}

.research-archive {
	margin: 0 0 28px;
	border: 1px dashed #c7d5e4;
	background: #f8fbfe;
}

.research-archive summary {
	padding: 14px 18px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.6;
	color: #0f2f57;
	cursor: pointer;
	list-style: none;
	background: linear-gradient(180deg, #f7fbff 0%, #edf4fb 100%);
}

.research-archive summary::-webkit-details-marker {
	display: none;
}

.research-archive summary::before {
	content: '+';
	display: inline-block;
	width: 16px;
	margin-right: 8px;
	font-size: 16px;
	font-weight: 700;
	color: #0f2f57;
}

.research-archive[open] summary::before {
	content: '-';
}

.research-archive-body {
	padding: 16px 18px 18px;
	background: transparent;
}

.research-code-item-archive {
	box-shadow: none;
}

.research-link-list {
	margin: 0;
	padding: 0;
	list-style: none;
	background: transparent;
}

.research-link-list li {
	padding: 14px 0;
	border-top: 1px solid #dfe7f0;
	background: transparent;
}

.research-link-list li:first-child {
	padding-top: 0;
	border-top: none;
}

.research-link-list a {
	display: inline-block;
	margin-bottom: 6px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.6;
	color: #0f2f57;
	text-decoration: none;
	background: transparent;
}

.research-link-list span {
	display: block;
	font-size: 14px;
	line-height: 1.9;
	color: #4e6073;
	background: transparent;
}

#contents .award-list {
	display: grid;
	gap: 20px;
	margin-top: 28px;
}

#contents .award-card {
	padding: 22px 24px;
	border: 1px solid #d7e1ec;
	background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
	box-shadow: 0 12px 28px rgba(16, 31, 48, 0.06);
}

#contents .award-date {
	display: inline-block;
	margin-bottom: 12px;
	padding: 4px 10px;
	border: 1px solid rgba(0, 83, 140, 0.18);
	background: rgba(0, 83, 140, 0.06);
	color: #00538c;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

#contents .award-card h3 {
	margin: 0 0 12px;
	font-size: 22px;
	line-height: 1.55;
	color: #13263f;
	background: transparent;
}

#contents .award-card p {
	margin: 10px 0 0;
	line-height: 1.9;
	background: transparent;
	text-indent: 0;
	padding: 0;
	box-shadow: none;
	border: none;
}

#contents .award-card a {
	font-weight: 700;
}

#contents .award-image {
	margin: 14px 0 8px;
}

#contents .award-image img {
	display: block;
	max-width: min(100%, 520px);
	height: auto;
	border: 1px solid #d7e1ec;
	box-shadow: 0 10px 24px rgba(16, 31, 48, 0.08);
}

#contents .journal {
	padding: 14px 0 18px;
	border-bottom: 1px solid #e2eaf2;
	background: transparent;
}

#contents .journal:last-child {
	border-bottom: none;
	padding-bottom: 8px;
}

#contents .journal .author {
	font-size: 13px;
	line-height: 1.85;
	color: #607287;
	background: transparent;
}

#contents .journal .title {
	margin-top: 6px;
	font-size: 18px;
	line-height: 1.72;
	font-weight: 700;
	color: #16202d;
	background: transparent;
}

#contents .journal .title a {
	font-size: inherit;
	line-height: inherit;
	color: #0f2f57;
	text-decoration: none;
	background: transparent;
}

#contents .journal .title a:hover {
	text-decoration: underline;
}

#contents .journal .meeting,
#contents .journal .book {
	margin-top: 7px;
	font-size: 13px;
	line-height: 1.85;
	color: #33465c;
	background: transparent;
}

#contents .journal .book a,
#contents .journal .meeting a {
	font-size: inherit;
	line-height: inherit;
	background: transparent;
}


/*
�p���������X�g
-------------------------------------------------------------------*/
#contents #pan {
	padding: 0 0 10px;
	border-bottom: 1px solid #d5deea;
	width: auto;
        background-color: transparent;
        color: #607287;
}
#contents #pan a {
	margin-right: 7px;
	margin-left: 7px;
}
#contents #pan strong {
	margin-left: 7px;
}


/*
�R���e���c2
-------------------------------------------------------------------*/

#contents2 {
	width:auto;
	float:none;
}

#contents #c_pad,
#contents2 #c_pad {
	box-sizing: border-box;
}

#contents2 p{
	width:auto;                              /*   �R���e���c�\����   */
	padding: 16px 18px;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
	border: 1px solid #d9e3ee;
	margin: 14px 0;
	line-height: 1.9;
	box-shadow: 0 10px 24px rgba(16, 31, 48, 0.04);
}

#contents2 h2 {
	width:auto;
	font-size: 24px;
	padding: 0 0 10px 0;
	color: #16202d;
	margin: 24px 0 10px;
	font-weight: bold;
	border-left: none;
	border-bottom: 2px solid #d5deea;
}


#contents2 h3 {
	width: auto;
	font-size: 18px;
	border-left: 4px solid #0e6b74;
	border-bottom: none;
	padding-left: 10px;
	color: #223142;
	line-height: 1.5;
	margin: 24px 0 12px;
}

#contents2 h3 a {
	font-size: 14px;
}

#contents2 h4 {
	font-size: 14px;
	color: #33465c;
	line-height: 1.6;
	margin: 18px 0 10px;
}

#contents2 ul {
	margin-left: 30px;
	list-style-type: none;
}
#contents2 li a {
	font-size: 12px;
}

#contents2 #c_pad {
	width:620px;
	padding: 10px;
        float: left
}

#contents2 #c_pad p a {
	line-height: 20px;
}

#contents2 #c_pad p strong {
	line-height: 20px;
}


/*
�p���������X�g2
-------------------------------------------------------------------*/
#contents2 #pan {
	padding: 0 0 10px;
	border-bottom: 1px solid #d5deea;
	width: auto;
        background-color: transparent;
        color: #607287;
}
#contents2 #pan a {
	margin-right: 7px;
	margin-left: 7px;
}
#contents2 #pan strong {
	margin-left: 7px;
}


/*
�T�u���j���[
-------------------------------------------------------------------*/
#contents2 #left{
        border-right: 1px solid #D4D4D4;
	padding-top: 7px;
	padding-left: 0px;
        width:200px;
        font-size:8pt;
        float:left;
}

#contents2 #left h4{
        font-size:12pt;
        width:190px;
        float:left;
	line-height: 30px;
	margin-top: 10px;
	margin-left: 2px;
        background-color: #FFFF66;
        border:solid 1px #dddddd;
}

#contents2 #left #submenu,.sbm1,.sbm2{
        float:left;
        margin-top:0px;
        margin-left:2px;
        padding:0px;
}


#contents2 #left #submenu .sbm1{
        float:left;
        margin-top:0px;
        margin-left:5px;
}

#contents2 #left #submenu .sbm2{
        float:left;
        margin-top:0px;
        margin-left:5px;
}

#contents2 #left #submenu .off .sbm1{
        display:none; 
}

#contents2 #left #submenu .on .sbm1{
        display:block;
}

#contents2 #left #submenu a{
        float:left;
        width:190px;
        min-height:20px;
        text-align:left;
        text-indent:1px;
        text-decoration: none;
        padding-top:4px;
        border:solid 1px #dddddd;
        background-color: #BBFF33;
}

#contents2 #left #submenu a:hover{
        background-color: #99DDEE;
        float:left;
}

#contents2 #left #submenu .sbm1 a{
        background-color: #FF8888;
        width:185px;
}

#contents2 #left #submenu .sbm2 a{
        background-color: #FFBBFF;
        width:180px;
}

#contents2 #left #submenu .sbm1 a:hover{
        background-color: #99DDEE;
}

#contents2 #left #submenu .sbm2 a:hover{
        background-color: #99DDEE;
}

#contents2 #left #submenu2,.sbm1,.sbm2{
        float:left;
        margin-top:0px;
        margin-left:2px;
        padding:0px;
}


#contents2 #left #submenu2 .sbm1{
        float:left;
        margin-top:0px;
        margin-left:5px;
}

#contents2 #left #submenu2 .sbm2{
        float:left;
        margin-top:0px;
        margin-left:5px;
}

#contents2 #left #submenu2 .off .sbm1{
        display:none; 
}

#contents2 #left #submenu2 .on .sbm1{
        display:block;
}

#contents2 #left #submenu2 a{
        float:left;
        width:190px;
        min-height:20px;
        text-align:left;
        text-indent:1px;
        text-decoration: none;
        padding-top:4px;
        border:solid 1px #dddddd;
        background-color: #BBFF33;
}

#contents2 #left #submenu2 a:hover{
        background-color: #99DDEE;
        float:left;
}

#contents2 #left #submenu2 .sbm1 a{
        background-color: #FF8888;
        width:185px;
}

#contents2 #left #submenu2 .sbm2 a{
        background-color: #FFBBFF;
        width:180px;
}

#contents2 #left #submenu2 .sbm1 a:hover{
        background-color: #99DDEE;
}

#contents2 #left #submenu2 .sbm2 a:hover{
        background-color: #99DDEE;
}


/*
���
-------------------------------------------------------------------*/

#news {
	width: 1000px;
}
#news-left {
        text-align: center;
        width: 500px;
        float: left
}
#news-left-in {
        text-align: left;
        margin-right: auto;
        margin-left: auto;
        width: 470px;
}
#news-left-in p{
	padding: 16px 18px;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
	border: 1px solid #d9e3ee;
	margin: 14px 0;
	line-height: 1.9;
	box-shadow: 0 10px 24px rgba(16, 31, 48, 0.04);
}
#news-right {
        text-align: center;
        width: 500px;
        float: left
}
#news-right-in {
        text-align: left;
        margin-right: auto;
        margin-left: auto;
        width: 470px;
}
#news-right-in p{
	padding: 16px 18px;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
	border: 1px solid #d9e3ee;
	margin: 14px 0;
	line-height: 1.9;
	box-shadow: 0 10px 24px rgba(16, 31, 48, 0.04);
}

.jupiter-logo-hero {
	margin: 18px 0 24px;
	text-align: center;
}

.jupiter-logo-hero img {
	max-width: min(100%, 460px);
	height: auto;
}

.jupiter-page #wrap {
	width: auto;
}

.jupiter-shell {
	padding: 4px 0 0;
	background: transparent;
}

.jupiter-hero-panel {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(180px, 0.55fr);
	gap: 24px;
	padding: 28px;
	border: 1px solid #d6e0eb;
	border-radius: 28px;
	background: linear-gradient(180deg, #ffffff 0%, #eef6fb 100%);
	box-shadow: 0 18px 38px rgba(10, 22, 36, 0.08);
	margin-bottom: 24px;
}

.jupiter-hero-copy,
.jupiter-hero-media,
.jupiter-hero-copy p,
.jupiter-hero-copy h2,
.jupiter-hero-media p {
	background: transparent;
}

.jupiter-kicker {
	margin-bottom: 10px;
	color: #0e6b74;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.jupiter-hero-copy h2 {
	width: auto;
	margin: 0 0 16px;
	padding: 0;
	border: none;
	font-size: 36px;
	line-height: 1.18;
	color: #102539;
}

.jupiter-lead {
	font-size: 15px;
	line-height: 2;
	color: #2c4055;
	margin-bottom: 22px;
}

.jupiter-download-callout {
	margin: 0 0 20px;
	padding: 16px 18px;
	border: 1px solid #cfe0ea;
	border-radius: 18px;
	background: #f7fbfe;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.jupiter-download-label,
.jupiter-download-text,
.jupiter-download-link {
	background: transparent;
	margin: 0;
}

.jupiter-download-label {
	margin-bottom: 8px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #0e6b74;
}

.jupiter-download-text {
	margin-bottom: 8px;
	font-size: 14px;
	line-height: 1.9;
	color: #25384d;
}

.jupiter-download-link a {
	font-size: 13px;
	font-weight: 700;
	color: #0f2f57;
	word-break: break-all;
}

.jupiter-action-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	background: transparent;
}

.jupiter-button {
	display: inline-block;
	padding: 12px 18px;
	border-radius: 999px;
	text-decoration: none;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.jupiter-button-primary {
	background: #0f2f57;
	color: #ffffff;
	box-shadow: 0 10px 22px rgba(15, 47, 87, 0.18);
}

.jupiter-button-secondary {
	border: 1px solid #c8d7e6;
	color: #0f2f57;
	background: #ffffff;
}

.jupiter-hero-media {
	display: flex;
	flex-direction: column;
	gap: 16px;
	justify-content: center;
}

.jupiter-quick-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 24px;
	padding: 0;
	background: transparent;
}

.jupiter-quick-nav a {
	display: inline-block;
	padding: 10px 14px;
	border-radius: 999px;
	border: 1px solid #d4dee9;
	background: #ffffff;
	text-decoration: none;
	font-size: 12px;
	font-weight: 700;
	box-shadow: 0 8px 18px rgba(15, 31, 48, 0.05);
}

.jupiter-section {
	margin-bottom: 24px;
	padding: 26px 28px;
	border: 1px solid #d9e3ee;
	border-radius: 24px;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
	box-shadow: 0 12px 28px rgba(16, 31, 48, 0.05);
}

.jupiter-section h3 {
	width: auto;
	margin: 0 0 18px;
	padding: 0 0 10px;
	border: none;
	border-bottom: 2px solid #d5deea;
	font-size: 26px;
	line-height: 1.25;
	color: #16202d;
}

.jupiter-section p,
.jupiter-section li {
	font-size: 14px;
	line-height: 1.95;
	color: #25384d;
	background: transparent;
}

.jupiter-about-intro {
	margin: 0 0 18px;
	padding: 16px 18px;
	border-left: 5px solid #0e6b74;
	border-radius: 16px;
	background: linear-gradient(180deg, #eef8fa 0%, #f8fcfe 100%);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.7;
	color: #102539;
	box-shadow: 0 10px 24px rgba(16, 31, 48, 0.04);
}

.jupiter-function-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 14px;
	background: transparent;
}

.jupiter-function-card {
	padding: 16px;
	border: 1px solid #d8e2ed;
	border-radius: 20px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 248, 252, 0.96));
	box-shadow: 0 12px 28px rgba(16, 31, 48, 0.05);
	text-align: center;
}

.jupiter-function-card img {
	display: block;
	width: 100%;
	height: 140px;
	object-fit: contain;
	margin: 0 0 14px;
	background: transparent;
}

.jupiter-function-card h4 {
	margin: 0 0 8px;
	font-size: 18px;
	line-height: 1.35;
	color: #102539;
	background: transparent;
}

.jupiter-function-card p {
	margin: 0;
	font-size: 13px;
	line-height: 1.8;
	color: #4a5d72;
	background: transparent;
}

.jupiter-spec-table-wrap {
	overflow-x: auto;
	margin-top: 16px;
	background: transparent;
}

.jupiter-spec-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid #d7e1ec;
	border-radius: 18px;
	overflow: hidden;
	background: #ffffff;
	box-shadow: 0 10px 24px rgba(16, 31, 48, 0.04);
}

.jupiter-spec-table th,
.jupiter-spec-table td {
	padding: 16px 18px;
	vertical-align: top;
	font-size: 14px;
	line-height: 1.8;
	text-align: left;
	border-right: 1px solid #d7e1ec;
	border-bottom: 1px solid #d7e1ec;
	background: transparent;
}

.jupiter-spec-table th {
	width: 18%;
	font-weight: 700;
	color: #102539;
	background: #edf4f9;
}

.jupiter-spec-table td {
	width: 32%;
	color: #25384d;
	background: #ffffff;
}

.jupiter-spec-table tr:last-child th,
.jupiter-spec-table tr:last-child td {
	border-bottom: none;
}

.jupiter-spec-table th:last-child,
.jupiter-spec-table td:last-child {
	border-right: none;
}

.jupiter-news-list,
.jupiter-roadmap-list {
	display: grid;
	gap: 14px;
	background: transparent;
}

.jupiter-news-item,
.jupiter-roadmap-item,
.jupiter-highlight-box,
.jupiter-usage-card,
.jupiter-feature-card,
.jupiter-gallery-item {
	padding: 18px 20px;
	border: 1px solid #d8e2ed;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.96);
}

.jupiter-news-date,
.jupiter-highlight-label,
.jupiter-roadmap-title {
	margin-bottom: 8px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #0e6b74;
}

.jupiter-two-column {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
	gap: 18px;
	background: transparent;
}

.jupiter-text-block,
.jupiter-text-block p,
.jupiter-highlight-box ul,
.jupiter-highlight-box li {
	background: transparent;
}

.jupiter-highlight-box ul {
	margin: 0 0 0 18px;
	padding: 0;
	list-style: disc;
}

.jupiter-feature-grid,
.jupiter-gallery-grid,
.jupiter-usage-grid {
	display: grid;
	gap: 16px;
	background: transparent;
}

.jupiter-feature-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-bottom: 16px;
}

.jupiter-gallery-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.jupiter-usage-grid {
	grid-template-columns: 1fr;
}

.jupiter-usage-card {
	position: relative;
	overflow: hidden;
	padding: 24px 24px 22px;
	border-radius: 22px;
	box-shadow: 0 16px 34px rgba(16, 31, 48, 0.06);
}

.jupiter-usage-card:before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 6px;
	border-radius: 22px 0 0 22px;
	background: #0f2f57;
}

.jupiter-usage-card-download {
	background: linear-gradient(180deg, #f4f8ff 0%, #ffffff 100%);
}

.jupiter-usage-card-download:before {
	background: #0f2f57;
}

.jupiter-usage-card-manual {
	background: linear-gradient(180deg, #eef8fa 0%, #ffffff 100%);
}

.jupiter-usage-card-manual:before {
	background: #0e6b74;
}

.jupiter-usage-card-reference {
	background: linear-gradient(180deg, #f8f5ff 0%, #ffffff 100%);
}

.jupiter-usage-card-reference:before {
	background: #6a4aa1;
}

.jupiter-feature-card h4,
.jupiter-usage-card h4 {
	margin: 0 0 10px;
	font-size: 18px;
	line-height: 1.4;
	color: #102539;
	background: transparent;
}

.jupiter-download-banner {
	margin: 0 0 18px;
	padding: 18px 20px;
	border-left: 5px solid #0e6b74;
	border-radius: 18px;
	background: linear-gradient(180deg, #eef8fa 0%, #f8fcfe 100%);
	box-shadow: 0 10px 24px rgba(16, 31, 48, 0.04);
}

.jupiter-download-banner-title {
	margin: 0 0 8px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.5;
	color: #102539;
	background: transparent;
}

.jupiter-gallery-item img {
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 12px;
	border-radius: 12px;
}

.jupiter-gallery-item p,
.jupiter-usage-card p,
.jupiter-roadmap-item p,
.jupiter-news-item p,
.jupiter-feature-card p {
	margin: 0;
	background: transparent;
}

@media screen and (max-width: 1024px) {
	.jupiter-hero-panel,
	.jupiter-two-column,
	.jupiter-feature-grid,
	.jupiter-gallery-grid,
	.jupiter-usage-grid {
		grid-template-columns: 1fr;
	}

	.jupiter-function-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.jupiter-spec-table th,
	.jupiter-spec-table td {
		min-width: 180px;
	}
}

@media screen and (max-width: 720px) {
	.jupiter-hero-panel,
	.jupiter-section {
		padding: 20px;
		border-radius: 20px;
	}

	.jupiter-function-grid {
		grid-template-columns: 1fr;
	}

	.jupiter-hero-copy h2,
	.jupiter-section h3 {
		font-size: 28px;
	}
}

.news-header { 
	font-size: 18px;
        font-weight: 600;
	background-color: transparent;
	text-align: left;
	text-indent: 0;
	color: #16202d;
	margin-bottom: 14px;
	padding-top: 0;
	padding-bottom: 10px;
	border-top: none;
	border-bottom: 2px solid #d5deea
}


/*
�t�b�^���j���[
-------------------------------------------------------------------*/

#f_menu {
	clear: both;
	text-align: center;
	border-top: 1px solid #E2E2DE;
}


@media screen and (max-width: 1024px) {
	#base {
		width: calc(100% - 20px);
	}

	#header,
	div#nav {
		width: auto;
	}

	.site-header {
		flex-direction: column;
	}

	.site-brand-heading {
		align-items: flex-start;
	}

	.site-brand-logos {
		flex-wrap: wrap;
	}

	.site-tools {
		width: 100%;
	}

	.site-brand-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.site-title {
		font-size: 28px;
	}

	div#nav ul#link_nav li:hover > ul {
		position: static;
		width: 100%;
		margin-top: 6px;
	}

	div#nav ul#link_nav li ul li:hover ul {
		left: 0;
	}

	#wrap,
	#contents,
	#contents2,
	#news,
	#news-left,
	#news-right {
		width: auto;
		float: none;
	}

	#news-left-in,
	#news-right-in {
		width: auto;
	}
}

@media screen and (max-width: 720px) {
	#header {
		padding: 18px 18px 16px;
	}

	div#nav {
		padding: 0 14px;
	}

	div#nav ul#link_nav li {
		float: none;
		width: 100%;
	}

	div#nav ul#link_nav li a {
		float: none;
	}

	.site-title {
		font-size: 24px;
	}

	.site-search-row {
		flex-direction: column;
	}

	.site-search input[type="submit"] {
		width: 100%;
	}

	#wrap {
		padding: 10px;
	}
}


/*
Top page only
-------------------------------------------------------------------*/

.home-page {
	--page-bg: #eef3f8;
	--surface: #ffffff;
	--surface-soft: #f5f8fc;
	--line: #d3dce8;
	--line-strong: #aab7cb;
	--text-main: #16202d;
	--text-sub: #516074;
	--brand: #0f2f57;
	--brand-soft: #dce8f8;
	--accent: #0e6b74;
	background:
		radial-gradient(circle at top right, rgba(133, 162, 198, 0.18), transparent 28%),
		linear-gradient(180deg, #f7fafc 0%, #eaf0f6 100%);
		color: var(--text-main);
		font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
}

.home-page body {
	color: var(--text-main);
}

.home-page * {
	color:inherit;
	box-sizing: border-box;
	font-family: inherit;
}

.home-page a {
	color: var(--brand);
	transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.home-page a:hover {
	color: var(--accent);
	text-decoration: none;
}

.home-page #base {
	width: min(1180px, calc(100% - 32px));
	margin-top: 24px;
	margin-bottom: 24px;
	border: 1px solid var(--line);
	background-color: rgba(255, 255, 255, 0.9);
	box-shadow: 0 28px 80px rgba(17, 35, 58, 0.08);
	overflow: hidden;
}

.home-page #header {
	width: auto;
	height: auto;
	padding: 20px 32px 16px;
	border-top: none;
	border-bottom: 1px solid var(--line);
	background:
		linear-gradient(135deg, rgba(15, 47, 87, 0.05), rgba(14, 107, 116, 0.03)),
		repeating-linear-gradient(90deg, transparent, transparent 39px, rgba(170, 183, 203, 0.12) 40px);
}

.home-page #header table {
	width: 100%;
	border-collapse: collapse;
}

.home-page #header td {
	vertical-align: middle;
	background: transparent;
}

.home-page #header img[name="tfgpic"] {
	max-width: 100%;
	height: auto;
}

.home-page #nav {
	width: auto;
	border-right: none;
	padding: 0 32px;
	background-color: rgba(248, 250, 252, 0.94);
	border-bottom: 1px solid var(--line);
	position: sticky;
	top: 0;
	z-index: 5;
	backdrop-filter: blur(10px);
}

.home-page div#nav ul#link_nav {
	width: 100%;
	min-height: 0;
	border: none;
	background: transparent;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px;
	padding: 10px 0;
}

.home-page div#nav ul#link_nav li {
	float: none;
	display: block;
	position: relative;
}

.home-page div#nav ul#link_nav li a {
	float: none;
	display: block;
	padding: 10px 16px;
	border-right: none;
	border-radius: 999px;
	color: var(--text-main);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.02em;
}

.home-page div#nav ul#link_nav li a:hover {
	background: var(--brand-soft);
	color: var(--brand);
}

.home-page div#nav ul#link_nav li:hover > ul {
	left: 0;
	top: calc(100% + 6px);
	padding-top: 0;
	border-top: none;
	background: transparent;
}

.home-page div#nav ul#link_nav li ul li {
	font-size: 13px;
	background: transparent;
}

.home-page div#nav ul#link_nav li ul li a,
.home-page div#nav ul#link_nav li ul li:hover ul li a {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--line);
	border-top: none;
	border-radius: 0;
	background: rgba(255, 255, 255, 0.98);
	color: var(--text-main);
	box-shadow: 0 18px 40px rgba(20, 34, 54, 0.08);
}

.home-page div#nav ul#link_nav li ul li:first-child a {
	border-top: 1px solid var(--line);
	border-top-left-radius: 16px;
	border-top-right-radius: 16px;
}

.home-page div#nav ul#link_nav li ul li:last-child a {
	border-bottom-left-radius: 16px;
	border-bottom-right-radius: 16px;
}

.home-page div#nav ul#link_nav li ul li a:hover {
	background: var(--surface-soft);
	color: var(--brand);
}

.home-page div#nav ul#link_nav li ul li:hover ul {
	left: calc(100% + 10px);
	top: 0;
}

.home-page #wrap {
	float: none;
	width: auto;
	padding: 24px 32px 48px;
	margin-top: 0;
	position: relative;
}

.home-page #contents {
	width: auto;
	float: none;
	margin-bottom: 24px;
}

.home-page #contents #pan {
	width: auto;
	padding: 0;
	border-bottom: none;
	background: transparent;
	color: var(--text-sub);
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.home-page .home-hero {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	align-items: stretch;
	margin-bottom: 24px;
}

.home-page .hero-copy,
.home-page .hero-panel,
.home-page .home-card {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(245, 248, 252, 0.96));
	border: 1px solid var(--line);
	box-shadow: 0 16px 36px rgba(16, 31, 48, 0.06);
	position: relative;
	overflow: hidden;
}

.home-page .hero-copy {
	padding: 48px;
	min-height: 0;
	background:
		linear-gradient(90deg, rgba(15, 47, 87, 0.08), transparent 42%),
		linear-gradient(135deg, rgba(15, 47, 87, 0.96), rgba(19, 60, 95, 0.9)),
		linear-gradient(90deg, rgba(255, 255, 255, 0.05), transparent 60%);
	color: #f7fbff;
}

.home-page .hero-copy > p,
.home-page .hero-copy > h1,
.home-page .hero-copy > .hero-actions {
	width: min(56%, 620px);
	position: relative;
	z-index: 3;
}

.home-page .hero-visual {
	position: absolute;
	right: 26px;
	top: 50%;
	transform: translateY(-50%);
	width: min(40%, 360px);
	z-index: 2;
	pointer-events: none;
	background: transparent;
}

.home-page .hero-visual img {
	display: block;
	width: 100%;
	height: auto;
	background: transparent;
}

.home-page .hero-copy:before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		linear-gradient(transparent 95%, rgba(255, 255, 255, 0.08) 96%),
		linear-gradient(90deg, transparent 95%, rgba(255, 255, 255, 0.06) 96%);
	background-size: 100% 44px, 44px 100%;
	opacity: 0.35;
	pointer-events: none;
}

.home-page .home-eyebrow,
.home-page .section-kicker,
.home-page .panel-label,
.home-page .topic-tag,
.home-page .timeline-date {
	font-family: 'IBM Plex Sans', 'Noto Sans JP', sans-serif;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 600;
	font-size: 11px;
}

.home-page .home-eyebrow {
	position: relative;
	margin-bottom: 18px;
	color: rgba(233, 241, 249, 0.78);
}

.home-page .hero-copy h1 {
	position: relative;
	font-family: 'IBM Plex Sans', 'Noto Sans JP', sans-serif;
	font-size: clamp(12px, 3.5vw, 41px);
	line-height: 1.12;
	font-weight: 700;
	letter-spacing: -0.03em;
	max-width: none;
	margin-bottom: 22px;
	color: #ffffff;
	white-space: normal;
}

body:not(.home-page) {
	background:
		radial-gradient(circle at top right, rgba(133, 162, 198, 0.18), transparent 28%),
		linear-gradient(180deg, #f7fafc 0%, #eaf0f6 100%);
}

body:not(.home-page) #base {
	width: min(1180px, calc(100% - 32px));
	margin-top: 24px;
	margin-bottom: 24px;
	border: 1px solid #d3dce8;
	background-color: rgba(255, 255, 255, 0.9);
	box-shadow: 0 28px 80px rgba(17, 35, 58, 0.08);
}

body:not(.home-page) #header {
	padding: 20px 32px 16px;
	border-top: none;
	border-bottom: 1px solid #d5deea;
	background:
		linear-gradient(135deg, rgba(15, 47, 87, 0.05), rgba(14, 107, 116, 0.03)),
		repeating-linear-gradient(90deg, transparent, transparent 39px, rgba(170, 183, 203, 0.12) 40px);
}

body:not(.home-page) div#nav ul#link_nav li a {
	float: none;
	display: block;
	padding: 10px 16px;
	border-right: none;
	border-radius: 999px;
	color: #16202d;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.02em;
	background: transparent;
}

body:not(.home-page) div#nav ul#link_nav li a:hover {
	background: #dce8f8;
	color: #0f2f57;
}

body:not(.home-page) div#nav ul#link_nav li:hover > ul {
	left: 0;
	top: calc(100% + 6px);
	padding-top: 0;
	border-top: none;
	background: transparent;
}

body:not(.home-page) div#nav ul#link_nav li ul li {
	font-size: 13px;
	background: transparent;
}

body:not(.home-page) div#nav ul#link_nav li ul li a,
body:not(.home-page) div#nav ul#link_nav li ul li:hover ul li a {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #d3dce8;
	border-top: none;
	border-radius: 0;
	background: rgba(255, 255, 255, 0.98);
	color: #16202d;
	box-shadow: 0 18px 40px rgba(20, 34, 54, 0.08);
}

body:not(.home-page) div#nav ul#link_nav li ul li:first-child a {
	border-top: 1px solid #d3dce8;
	border-top-left-radius: 16px;
	border-top-right-radius: 16px;
}

body:not(.home-page) div#nav ul#link_nav li ul li:last-child a {
	border-bottom-left-radius: 16px;
	border-bottom-right-radius: 16px;
}

body:not(.home-page) div#nav ul#link_nav li ul li a:hover {
	background: #f5f8fc;
	color: #0f2f57;
}

body:not(.home-page) div#nav ul#link_nav li ul li:hover ul {
	left: calc(100% + 10px);
	top: 0;
}

body:not(.home-page) #wrap {
	padding: 24px 32px 48px;
	position: relative;
}

body:not(.home-page) #f_menu {
	padding: 18px 20px 26px;
	background-color: #f7fafc;
	border-top: 1px solid #d5deea;
	font-size: 12px;
	color: #516074;
}

.home-page .home-lead {
	position: relative;
	max-width: 58em;
	font-size: 15px;
	line-height: 1.95;
	color: rgba(240, 246, 252, 0.88);
	margin-bottom: 28px;
}

.research-page #contents2 #c_pad {
	width: 100%;
	padding: 24px;
	float: none;
	border: 1px solid #d9e3ee;
	border-radius: 24px;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
	box-shadow: 0 12px 28px rgba(16, 31, 48, 0.05);
	box-sizing: border-box;
}

.award-page #contents #c_pad,
.staff-page #contents #c_pad,
.contact-page #contents #c_pad {
	width: 100%;
	padding: 24px;
	float: none;
	border: 1px solid #d9e3ee;
	border-radius: 24px;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
	box-shadow: 0 12px 28px rgba(16, 31, 48, 0.05);
	box-sizing: border-box;
}

.home-page .hero-actions {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.home-page .home-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 18px;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 600;
	font-size: 13px;
	border: 1px solid transparent;
	transform: translateY(0);
}

.home-page .home-button:hover {
	transform: translateY(-1px);
}

.home-page .home-button-primary {
	background-color: #eef5ff;
	color: var(--brand);
}

.home-page .home-button-secondary {
	background-color: transparent;
	border-color: rgba(238, 245, 255, 0.32);
	color: #eef5ff;
}

.home-page .hero-panel {
	padding: 28px;
	background:
		linear-gradient(180deg, #f7fafc 0%, #eef4f9 100%);
}

.home-page .hero-metrics {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: grid;
	gap: 14px;
}

.home-page .hero-metrics li {
	padding: 14px 16px;
	border: 1px solid var(--line);
	background-color: rgba(255, 255, 255, 0.82);
	line-height: 1.8;
	font-size: 13px;
	color: var(--text-main);
}

.home-page .hero-metrics span {
	display: inline-block;
	min-width: 30px;
	margin-right: 10px;
	color: var(--accent);
	font-family: 'IBM Plex Sans', sans-serif;
	font-weight: 700;
	font-size: 16px;
}

.home-page .hero-note {
	padding-top: 18px;
	border-top: 1px solid var(--line);
}

.home-page .hero-note p {
	line-height: 1.9;
	margin-bottom: 10px;
	font-size: 13px;
	color: var(--text-sub);
}

.home-page .home-grid,
.home-page .home-split {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.9fr);
	gap: 24px;
	margin-bottom: 24px;
}

.home-page .home-grid-single {
	grid-template-columns: 1fr;
}

.home-page .home-card {
	padding: 30px;
	border-radius: 24px;
}

.home-page .section-kicker,
.home-page .panel-label,
.home-page .topic-tag,
.home-page .timeline-date {
	color: var(--accent);
	margin-bottom: 10px;
}

.home-page .home-card h2,
.home-page .home-section h2,
.home-page .feature-card h3 {
	font-family: 'IBM Plex Sans', 'Noto Sans JP', sans-serif;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--text-main);
	margin: 0 0 16px;
}

.home-page .home-card h2,
.home-page .home-section h2 {
	font-size: 30px;
	line-height: 1.2;
	width: auto;
	padding: 0;
	border: none;
}

.home-page .overview-card p,
.home-page .poster-card p,
.home-page .feature-card p,
.home-page .timeline-item p,
.home-page .topic-item p,
.home-page .home-footer-note {
	font-size: 14px;
	line-height: 1.95;
	color: var(--text-sub);
	margin: 0;
	background: transparent;
	width: auto;
	padding: 0;
}

.home-page .overview-card p + p,
.home-page .poster-card p + p,
.home-page .topic-item + .topic-item,
.home-page .timeline-item + .timeline-item {
	margin-top: 14px;
}

.home-page .overview-links {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 24px;
}

.home-page .overview-links a,
.home-page .feature-card a,
.home-page .hero-note a,
.home-page .timeline-item a {
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
}

.home-page .overview-links a {
	padding-bottom: 2px;
	border-bottom: 1px solid var(--line-strong);
}

.home-page .poster-link {
	display: block;
	border: 1px solid var(--line);
	border-radius: 18px;
	overflow: hidden;
	margin-bottom: 18px;
	background-color: #f7fafc;
}

.home-page .poster-link img {
	display: block;
	width: 100%;
	height: auto;
}

.home-page .home-split-single {
	grid-template-columns: 1fr;
}

.home-page .snapshot-showcase {
	margin-bottom: 32px;
	padding: 0;
	border-radius: 30px;
	overflow: hidden;
	border: 1px solid var(--line);
	background: linear-gradient(135deg, #08131d 0%, #102536 52%, #183c51 100%);
	box-shadow: 0 28px 60px rgba(8, 20, 32, 0.18);
}

.home-page .snapshot-copy {
	padding: 28px 32px 20px;
	background: linear-gradient(180deg, rgba(5, 14, 24, 0.92), rgba(5, 14, 24, 0.64));
}

.home-page .snapshot-copy .section-kicker,
.home-page .snapshot-copy h2,
.home-page .snapshot-copy p {
	position: relative;
	z-index: 2;
	background: transparent;
}

.home-page .snapshot-copy .section-kicker {
	margin-bottom: 8px;
	color: #85d0d7;
}

.home-page .snapshot-copy h2 {
	margin-bottom: 12px;
	color: #f5fbff;
}

.home-page .snapshot-copy p:last-child {
	max-width: 780px;
	font-size: 14px;
	line-height: 1.9;
	color: rgba(229, 240, 247, 0.82);
}

.home-page .snapshot-slideshow {
	position: relative;
	min-height: clamp(320px, 52vw, 620px);
	background: #0d1b29;
}

.home-page .snapshot-slide {
	position: absolute;
	inset: 0;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	animation: snapshot-fade 36s infinite;
}

.home-page .snapshot-slide-1 {
	animation-delay: 0s;
}

.home-page .snapshot-slide-2 {
	animation-delay: 6s;
}

.home-page .snapshot-slide-3 {
	animation-delay: 12s;
}

.home-page .snapshot-slide-4 {
	animation-delay: 18s;
}

.home-page .snapshot-slide-5 {
	animation-delay: 24s;
}

.home-page .snapshot-slide-6 {
	animation-delay: 30s;
}

.home-page .snapshot-slide img {
	display: block;
	width: auto;
	height: 100%;
	max-width: 100%;
	object-fit: contain;
}

.home-page .snapshot-slideshow:before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(7, 17, 27, 0.08) 0%, rgba(7, 17, 27, 0.2) 45%, rgba(7, 17, 27, 0.74) 100%);
	pointer-events: none;
	z-index: 2;
}

.home-page .snapshot-overlay {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 24px 32px 30px;
	z-index: 3;
	background: linear-gradient(180deg, rgba(4, 10, 18, 0) 0%, rgba(4, 10, 18, 0.84) 100%);
}

.home-page .snapshot-label,
.home-page .snapshot-caption {
	margin: 0;
	background: transparent;
}

.home-page .snapshot-label {
	margin-bottom: 10px;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #8dd2d8;
}

.home-page .snapshot-caption {
	max-width: 720px;
	font-size: 22px;
	line-height: 1.5;
	font-weight: 600;
	color: #f6fbff;
}

.home-page .snapshot-indicators {
	position: absolute;
	right: 32px;
	bottom: 34px;
	display: flex;
	gap: 10px;
	z-index: 4;
}

.home-page .snapshot-indicators span {
	display: block;
	width: 42px;
	height: 4px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.24);
	overflow: hidden;
}

.home-page .snapshot-indicators span:before {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	transform: scaleX(0);
	transform-origin: left center;
	background: #d7f1f4;
	animation: snapshot-progress 36s infinite;
}

.home-page .snapshot-indicators span:nth-child(2):before {
	animation-delay: 6s;
}

.home-page .snapshot-indicators span:nth-child(3):before {
	animation-delay: 12s;
}

.home-page .snapshot-indicators span:nth-child(4):before {
	animation-delay: 18s;
}

.home-page .snapshot-indicators span:nth-child(5):before {
	animation-delay: 24s;
}

.home-page .snapshot-indicators span:nth-child(6):before {
	animation-delay: 30s;
}

@keyframes snapshot-fade {
	0% {
		opacity: 0;
	}
	2% {
		opacity: 1;
	}
	14% {
		opacity: 1;
	}
	16.67% {
		opacity: 0;
	}
	100% {
		opacity: 0;
	}
}

@keyframes snapshot-progress {
	0% {
		transform: scaleX(0);
	}
	14% {
		transform: scaleX(1);
	}
	16.67% {
		transform: scaleX(1);
	}
	16.68% {
		transform: scaleX(0);
	}
	100% {
		transform: scaleX(0);
	}
}

.home-page .home-section {
	margin-bottom: 24px;
	padding: 8px 0;
}

.home-page .section-heading {
	margin-bottom: 18px;
}

.home-page .section-heading.compact {
	margin-bottom: 20px;
}

.home-page .feature-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.home-page .feature-card {
	padding: 24px;
	border: 1px solid var(--line);
	border-radius: 22px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 248, 252, 0.96));
	box-shadow: 0 12px 28px rgba(16, 31, 48, 0.05);
	min-height: 230px;
}

.home-page .feature-card h3 {
	font-size: 20px;
	line-height: 1.35;
	margin-bottom: 14px;
}

.home-page .feature-card p {
	margin-bottom: 18px;
}

.home-page .timeline {
	position: relative;
	padding-left: 30px;
}

.home-page .timeline:before {
	content: '';
	position: absolute;
	left: 9px;
	top: 4px;
	bottom: 4px;
	width: 1px;
	background: linear-gradient(180deg, var(--line-strong), rgba(170, 183, 203, 0.2));
}

.home-page .timeline-item {
	position: relative;
	padding: 0 0 18px 24px;
}

.home-page .timeline-item:before {
	content: '';
	position: absolute;
	left: 1px;
	top: 8px;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background-color: var(--surface);
	border: 3px solid var(--accent);
	box-shadow: 0 0 0 6px rgba(14, 107, 116, 0.08);
}

.home-page .timeline-date {
	margin-bottom: 6px;
	font-size: 10px;
}

.home-page .topic-list {
	display: grid;
	gap: 14px;
}

.home-page .topic-item {
	padding: 18px 18px 16px;
	border: 1px solid var(--line);
	border-radius: 18px;
	background-color: rgba(255, 255, 255, 0.78);
}

.home-page .topic-tag {
	display: inline-block;
	margin-bottom: 8px;
	padding: 4px 8px;
	border-radius: 999px;
	background-color: var(--brand-soft);
	color: var(--brand);
}

.home-page .home-footer-note {
	padding-top: 8px;
	font-size: 12px;
	color: var(--text-sub);
	text-align: right;
}

.home-page #f_menu {
	padding: 18px 20px 26px;
	background-color: #f7fafc;
	border-top: 1px solid var(--line);
	font-size: 12px;
	color: var(--text-sub);
}

.home-page #f_menu a {
	font-size: inherit;
}

@media screen and (max-width: 1024px) {
	.home-page #base {
		width: calc(100% - 20px);
		margin-top: 10px;
		margin-bottom: 10px;
	}

	.home-page #header,
	.home-page #nav,
	.home-page #wrap {
		padding-left: 20px;
		padding-right: 20px;
	}

	.home-page .home-hero,
	.home-page .home-grid,
	.home-page .home-split,
	.home-page .feature-grid {
		grid-template-columns: 1fr;
	}

	.home-page .snapshot-copy,
	.home-page .snapshot-overlay {
		padding-left: 24px;
		padding-right: 24px;
	}

	.home-page .snapshot-indicators {
		right: 24px;
	}

	.home-page .hero-copy h1 {
		font-size: 38px;
	}

	.home-page .hero-copy {
		background:
			linear-gradient(90deg, rgba(15, 47, 87, 0.08), transparent 42%),
			linear-gradient(135deg, rgba(15, 47, 87, 0.96), rgba(19, 60, 95, 0.9)),
			linear-gradient(90deg, rgba(255, 255, 255, 0.05), transparent 60%);
	}

	.home-page .hero-visual {
		right: 20px;
		width: min(36%, 300px);
	}

	.home-page .hero-copy > p,
	.home-page .hero-copy > h1,
	.home-page .hero-copy > .hero-actions {
		width: min(62%, 540px);
	}

	.home-page div#nav ul#link_nav li:hover > ul {
		position: static;
		width: 100%;
		margin-top: 6px;
	}

	.home-page div#nav ul#link_nav li ul li:hover ul {
		left: 0;
	}

	.home-page .home-footer-note {
		text-align: left;
	}
}

@media screen and (max-width: 720px) {
	.home-page #header td {
		display: block;
		width: 100%;
	}

	.home-page #header table,
	.home-page #header tbody,
	.home-page #header tr {
		display: block;
	}

	.home-page .snapshot-showcase {
		border-radius: 24px;
	}

	.home-page .snapshot-slideshow {
		min-height: 260px;
	}

	.home-page .snapshot-caption {
		font-size: 18px;
	}

	.home-page .snapshot-indicators {
		left: 24px;
		right: auto;
		bottom: 18px;
	}

	.home-page #header img[name="tfgpic"] {
		width: 100%;
	}

	.home-page #nav {
		position: static;
		backdrop-filter: none;
	}

	.home-page .hero-copy,
	.home-page .hero-panel,
	.home-page .home-card,
	.home-page .feature-card {
		padding: 22px;
		border-radius: 20px;
	}

	.home-page .hero-copy h1 {
		font-size: 31px;
	}

	.home-page .hero-copy {
		background:
			linear-gradient(135deg, rgba(15, 47, 87, 0.96), rgba(19, 60, 95, 0.9)),
			linear-gradient(90deg, rgba(255, 255, 255, 0.05), transparent 60%);
	}

	.home-page .hero-visual {
		display: none;
	}

	.home-page .hero-copy > p,
	.home-page .hero-copy > h1,
	.home-page .hero-copy > .hero-actions {
		width: 100%;
	}

	.home-page .home-lead,
	.home-page .overview-card p,
	.home-page .poster-card p,
	.home-page .feature-card p,
	.home-page .timeline-item p,
	.home-page .topic-item p {
		font-size: 13px;
	}

	.home-page .hero-actions,
	.home-page .overview-links {
		flex-direction: column;
		align-items: stretch;
	}

	.home-page .home-button {
		width: 100%;
	}
}


/*
	Sticky header
-------------------------------------------------------------------*/

:root {
	--sticky-header-height: 0px;
}

.site-title,
div#nav ul#link_nav li a,
.home-page div#nav ul#link_nav li a,
body:not(.home-page) div#nav ul#link_nav li a {
	font-family: 'IBM Plex Sans', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
}

#header,
.home-page #header,
body:not(.home-page) #header {
	position: sticky;
	top: 0;
	z-index: 30;
}

div#nav,
.home-page #nav,
body:not(.home-page) #nav {
	position: sticky;
	top: var(--sticky-header-height);
	z-index: 29;
	backdrop-filter: blur(10px);
	box-shadow: 0 12px 24px rgba(17, 35, 58, 0.08);
}

@media screen and (max-width: 720px) {
	.home-page #nav,
	body:not(.home-page) #nav {
		position: sticky;
		top: var(--sticky-header-height);
		z-index: 29;
		backdrop-filter: blur(10px);
	}
}

/* Overlay label on top hero image */
.hero-visual { position: relative; }
.top-image-overlay {
	position: absolute;
	left: 16px;
	bottom: calc(16px + 0.5em);
	background: rgba(0,0,0,0.55);
	color: #fff;
	padding: 6px 10px;
	border-radius: 4px;
	font-weight: 600;
	font-size: 14px;
	line-height: 1;
	font-family: 'Noto Sans JP', 'IBM Plex Sans', sans-serif;
}

