/* ▼ ページ構成 ▼ */

@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@600;900&display=swap');

*{
	box-sizing:border-box;
	-webkit-print-color-adjust:exact;
	}

html, body{
	margin:0;
	padding:0;
	}

#bodyzone{
	margin:0;
	padding:0;
	background:url("img/bg.gif") #000;
	text-align:center;
	text-size-adjust:100%;
	word-break:break-all;
	font-size:100%;
	font-family:"Noto Serif JP", "HGP明朝E", "HGPMinchoE", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "游明朝", YuMincho, "ＭＳ Ｐ明朝", "MS PMincho", serif;
	color:#fff;
	}
	
	@media print{
	#bodyzone{
		min-width:1024px;
		margin:0 auto;
		}
	}

#fullscreen{
	z-index:99999;
	position:fixed;
	inset:0;
	display:block;
	width:100vw;
	height:100vh;
	margin:0;
	padding:0;
	background:rgba(0,0,0,0.5);
	}

#fullscreen_zone{
	position:relative;
	top:50%;
	transform:translate(0, -50%);
	display:inline-block;
	max-width:100vw;
	max-height:calc(100vh - 14px);
	margin:auto;
	padding:7px;
	background:#fff;
	text-align:center;
	}

#fullscreen_zone img{
	max-height:calc(100vh - 124px);
	}

#fullscreen_close{
	position:absolute;
	top:-48px;
	right:0;
	display:block;
	width:60px;
	height:60px;
	margin:0;
	padding:0;
	background:#ccc;
	border-radius:60px;
	}

#fullscreen_close::before{
	position:absolute;
	top:0;
	right:0;
	display:block;
	width:40px;
	height:2px;
	background:#000;
	transform:translate(-10px, 30px) rotate(45deg);
	content:"";
	}

#fullscreen_close::after{
	position:absolute;
	top:0;
	right:0;
	display:block;
	width:40px;
	height:2px;
	background:#000;
	transform:translate(-10px, 30px) rotate(-45deg);
	content:"";
	}

.pagezone{
	width:100%;
	max-width:1000px;
	margin:0 auto;
	padding:0;
	}

.ad{
	margin:0;
	padding:7px 0 5px 0;
	font-size:88%;
	color:#fff;
	}

.ad a{
	display:inline;
	}

header{
	width:100%;
	margin:0 0 15px 0;
	padding:0;
	background:rgba(0,0,0,0.6);
	text-align:center;
	}

main{
	width:100%;
	margin:0;
	padding:0;
	}
	
	@media print, screen and (min-width:960px){
	main{
		float:left;
		margin:0 -325px 0 0;
		padding:0 325px 0 0;
		}
	}

aside{
	width:100%;
	margin:0;
	padding:0;
	}
	
	@media print, screen and (min-width:960px){
	aside{
		float:right;
		width:310px;
		}
	}

footer{
	width:100%;
	margin:0;
	padding:5px;
	background:rgba(0,0,0,0.6);
	text-align:center;
	line-height:1.3em;
	letter-spacing:0.01em;
	font-size:88%;
	font-style:italic;
	}


/* ▼ 基本タグ ▼ */

a{
	display:block;
	text-decoration:none;
	color:#fff;
	}

a.inline, p a, li a{
	display:inline;
	text-decoration:underline;
	font-weight:bold;
	}

a.link{
	padding-right:15px;
	background:url("img/link.gif") top right no-repeat;
	}

a:hover, input.button:hover, img.expand:hover, #fullscreen_close:hover{
	filter:alpha(opacity=50);
	-moz-opacity:0.5;
	opacity:0.5;
	cursor:pointer;
	}

small{
	font-size:80%;
	}

em{
	display:block;
	line-height:1.3em;
	font-size:80%;
	font-style:normal;
	}

sup, sub{
	font-size:60%;
	line-height:1em;
	}

img{
	margin:0;
	padding:0;
	max-width:100%;
	vertical-align:middle;
	}

mark{
	margin:-3px 0;
	padding:3px 5px;
	background:rgba(255,255,255,0.8);
	font-style:normal;
	font-weight:bold;
	}

mark.block{
	display:block;
	margin:5px 0;
	padding:3px 7px;
	line-height:1.5em;
	}

mark.number{
	display:inline-block;
	width:1.5em;
	height:1.5em;
	margin:2px;
	padding:0;
	border-radius:1.5em;
	text-align:center;
	white-space:nowrap;
	line-height:1.5em;
	font-size:105%;
	}

ul{
	margin:0 0 0 22px;
	padding:0;
	list-style:square;
	}

ol{
	margin:0 0 0 22px;
	padding:0;
	list-style:decimal;
	}

li{
	margin:0;
	padding:0 0 15px 0;
	line-height:1.5em;
	font-size:100%;
	}

.button{
	width:100%;
	max-width:500px;
	margin:10px auto 0 auto;
	padding:11px 5px;
	box-shadow:3px -3px 4px rgba(0,0,0,0.3);
	border:1px solid rgba(238,238,238,0.8);
	border-radius:8px;
	background:transparent;
	text-align:center;
	line-height:1.4em;
	font-size:105%;
	font-weight:bold;
	color:#fff;
	}

.button.link{
	background:url("img/link.gif") top 1px right 1px no-repeat;
	}

p{
	margin:0 0 20px 0;
	padding:0;
	}

br.sponly{ /* spのみ改行 */
	display:inline-block;
	}
	
	@media print, screen and (min-width:640px){
	br.sponly{
		display:none;
		}
	}

br.pconly{ /* pcのみ改行 */
	display:none;
	}
	
	@media print, screen and (min-width:640px){
	br.pconly{
		display:inline-block;
		}
	}

hr{
	margin:20px 0 10px 0;
	padding:0;
	border:none;
	border-top:1px dotted #888;
	}

hr.dot{
	width:8px;
	height:8px;
	margin:10px auto 0 auto;
	border-top:none;
	border-radius:1em;
	background:#fff;
	}

hr.triangle{
	width:200px;
	height:25px;
	margin:20px auto 0 auto;
	border-top:none;
	background:linear-gradient(to bottom left, rgba(255,255,255,0.8) 50%, transparent 50%) top left /50% 100% no-repeat, linear-gradient(to bottom right, rgba(255,255,255,0.8) 50%, transparent 50%) top right /50% 100% no-repeat;
	}

.clear{
	clear:both;
	margin:0;
	padding:0;
	}


/* ▼ box関連 ▼ */

.box{
	margin:0 0 15px 0;
	padding:10px;
	border:2px solid #000;
	background:rgba(0,0,0,0.6);
	text-align:center;
	font-size:100%;
	}

article{
	margin:0 0 15px 0;
	padding:0;
	border:2px solid #000;
	background:rgba(0,0,0,0.6);
	text-align:left;
	font-size:100%;
	}

article .articletext{
	margin:10px 15px;
	padding:0;
	text-align:justify;
	text-justify:inter-ideograph;
	line-height:1.9em;
	letter-spacing:-0.04em;
	}

article .articletext .articletext_left{
	width:100%;
	margin:0;
	padding:0;
	}
	
	@media print, screen and (min-width:640px){
	article .articletext .articletext_left{
		float:left;
		width:calc(40% - 2.5px);
		margin:0;
		padding:0 0 -5px 0;
		}
	}

article .articletext .articletext_right{
	width:100%;
	margin:0;
	padding:0;
	}
	
	@media print, screen and (min-width:640px){
	article .articletext .articletext_right{
		float:right;
		width:calc(60% - 2.5px);
		margin:0;
		padding:0;
		}
	}

.scrollarea{
	margin:0;
	padding:0;
	overflow-x:auto;
	}


/* ▼ form関連 ▼ */

form{
	margin:0;
	padding:0;
	text-align:center;
	}

form label{
	display:block;
	}

form input.chk{
	margin:0 5px 0 0;
	padding:0;
	}

form input.text, form select{
	width:100%;
	margin:0;
	padding:2px;
	border:1px solid #fff;
	font-size:100%;
	font-family:inherit;
	}

form textarea{
	width:100%;
	height:7em;
	margin:0;
	padding:2px;
	resize:none;
	border:1px solid #fff;
	font-size:100%;
	font-family:inherit;
	}

form input.button{
	font-family:inherit;
	}

form .pp{
	height:8.7em;
	margin:0 0 10px 0;
	padding:8px 13px;
	border:2px solid #888;
	background:#111;
	overflow-x:auto;
	overflow-y:scroll;
	text-align:justify;
	text-justify:inter-ideograph;
	line-height:1.4em;
	letter-spacing:-0.06em;
	font-size:80%;
	color:#fff;
	}


/* ▼ figure関連 ▼ */

figure{
	width:254px;
	max-width:100%;
	margin:0 auto 5px auto;
	padding:5px;
	background:#333;
	text-align:center;
	}

figure img{
	width:244px;
	}

figure .button{
	margin:5px 0 0 0;
	}


/* ▼ table.summary関連 ▼ */

table.summary, table.summary_s{
	width:100%;
	margin:-5px 0;
	padding:0;
	table-layout:fixed;
	border-collapse:separate;
	border-spacing:0 5px;
	}

table.summary tr, table.summary_s tr{
	margin:0;
	padding:0;
	}

table.summary th, table.summary_s th{
	display:block;
	margin:0;
	padding:6px 0 6px 10px;
	border-top:2px solid #333;
	border-right:2px solid #333;
	border-left:2px solid #333;
	background:linear-gradient(to right, rgba(255,255,255,0.8) 148px, transparent 148px 100%);
	text-shadow:1px 1px 2px #888;
	text-align:left;
	vertical-align:top;
	line-height:1.5em;
	font-size:100%;
	font-weight:bold;
	color:#000;
	}
	
	@media print, screen and (min-width:640px){
	table.summary th{
		display:table-cell;
		width:150px;
		border-right:none;
		border-bottom:2px solid #333;
		}
	}

table.summary td, table.summary_s td{
	display:block;
	margin:0;
	padding:6px 10px;
	border-right:2px solid #333;
	border-bottom:2px solid #333;
	border-left:2px solid #333;
	text-align:justify;
	text-justify:inter-ideograph;
	vertical-align:top;
	line-height:1.5em;
	font-size:100%;
	}
	
	@media print, screen and (min-width:640px){
	table.summary td{
		display:table-cell;
		border-top:2px solid #333;
		border-left:none;
		}
	}

table.summary td.center, table.summary_s td.center{
	text-align:center;
	}

table.summary td .errormsg, table.summary_s td .errormsg{
	display:block;
	font-size:88%;
	font-weight:bold;
	color:#f00;
	}


/* ▼ table.list関連 ▼ */

table.list{
	width:auto;
	min-width:100%;
	margin:0;
	padding:0;
	table-layout:auto;
	border-collapse:collapse;
	}

table.list tr{
	margin:0;
	padding:0;
	border-bottom:2px solid #333;
	}

table.list tr.list_paper{
	border-bottom:none;
	}

table.list th{
	display:table-cell;
	width:auto;
	margin:0;
	padding:1px 7px;
	border-top:none;
	border-right:none;
	border-bottom:none;
	border-left:none;
	background:#333;
	text-align:justify;
	text-justify:inter-ideograph;
	vertical-align:bottom;
	white-space:nowrap;
	line-height:1.6em;
	font-size:100%;
	font-weight:bold;
	color:#fff;
	}

table.list td{
	display:table-cell;
	width:auto;
	margin:0;
	padding:1px 7px;
	border-top:none;
	border-right:none;
	border-bottom:none;
	border-left:none;
	text-align:justify;
	text-justify:inter-ideograph;
	vertical-align:middle;
	white-space:nowrap;
	line-height:1.6em;
	font-size:100%;
	}

table.list td.entryno{ /* エントリーナンバー */
	width:3.6em;
	min-width:3.6em;
	max-width:3.6em;
	padding:1px;
	text-align:right;
	}

table.list td.rank{ /* 順位 */
	width:4.5em;
	min-width:4.5em;
	max-width:4.5em;
	padding:1px;
	text-align:center;
	font-weight:bold;
	}

table.list td.bgr, table.list td.bgb, table.list td.bgy, table.list td.bgg, table.list td.bgd{ /* プレート */
	width:1.9em;
	min-width:1.9em;
	max-width:1.9em;
	padding:1px;
	text-shadow:1px 1px 2px #000;
	text-align:center;
	}

table.list td.name{ /* エントリー名 */
	width:9.4em;
	min-width:9.4em;
	max-width:9.4em;
	}

table.list tr.list_paper td.name{
	padding:1px 7px 1px 0;
	}

table.list td.circle{ /* 所属サークル */
	width:16.5em;
	min-width:16.5em;
	max-width:16.5em;
	white-space:normal;
	line-height:1.0em;
	font-size:70%;
	}

table.list td.record{ /* 記録 */
	text-align:right;
	}


/* ▼ table.aboutbit関連 ▼ */

table.aboutbit{
	width:auto;
	min-width:auto;
	margin:-15px 0 20px 5px;
	padding:0;
	table-layout:auto;
	border-collapse:collapse;
	}

table.aboutbit tr{
	margin:0;
	padding:0;
	border:none;
	}

table.aboutbit th{
	margin:0;
	padding:1px 3px;
	border-top:none;
	border-right:none;
	border-bottom:none;
	border-left:none;
	background::transparent;
	text-align:justify;
	text-justify:inter-ideograph;
	vertical-align:bottom;
	white-space:nowrap;
	line-height:1.6em;
	font-size:100%;
	font-weight:bold;
	color:#fff;
	}

table.aboutbit td{
	display:table-cell;
	width:auto;
	margin:0;
	padding:1px 3px;
	border-top:none;
	border-right:none;
	border-bottom:none;
	border-left:none;
	text-align:justify;
	text-justify:inter-ideograph;
	vertical-align:middle;
	white-space:nowrap;
	line-height:1.6em;
	font-size:100%;
	}

table.aboutbit td small{
	font-size:70%;
	letter-spacing:0;
	}


/* ▼ table.paperresult関連 ▼ */

table.paperresult{
	margin:10px 0;
	padding:0;
	table-layout:fixed;
	border-collapse:collapse;
	}

table.paperresult tr{
	margin:0;
	padding:0;
	border-bottom:2px solid #333;
	}

table.paperresult th{
	margin:0;
	padding:0;
	background:rgba(255,255,255,0.8);
	text-align:center;
	vertical-align:middle;
	white-space:nowrap;
	line-height:1.9em;
	font-weight:bold;
	color:#000;
	}

table.paperresult td{
	margin:0;
	padding:0;
	text-align:center;
	vertical-align:middle;
	white-space:nowrap;
	line-height:1.9em;
	}

table.paperresult td.paperresult_o{
	background:#c33;
	}

table.paperresult td.paperresult_x{
	background:#33c;
	}


/* ▼ header ▼ */

header a{
	width:100%;
	max-width:1000px;
	margin:0 auto;
	padding:0;
	}

header .bgimage{
	margin:0;
	padding:0;
	padding-bottom:calc(100% * 600 / 1200);
	background:url("img/title.png") bottom center /contain no-repeat;
	}


/* ▼ main ▼ */

main h1{
	margin:10px;
	padding:8px 4px;
	border-top:3px double #fff;
	border-bottom:3px double #fff;
	text-align:center;
	line-height:1.2em;
	letter-spacing:0.03em;
	font-size:155%;
	font-weight:bold;
	color:#fff;
	}
	
	@media print, screen and (min-width:640px){
	main h1{
		margin:15px 15px 0 15px;
		padding:5px;
		font-size:220%;
		}
	}

main h2{
	position:relative;
	margin:15px 15px 7px 15px;
	padding:5px 7px 5px 31px;
	border-top:2px solid #fff;
	border-bottom:2px solid #fff;
	text-align:left;
	line-height:1.2em;
	letter-spacing:0.01em;
	font-size:145%;
	font-weight:bold;
	color:#fff;
	}

main h2::before{
	position:absolute;
	top:9px;
	left:5px;
	width:20px;
	height:20px;
	border-radius:1em;
	background:#fff;
	content:"";
	}

main article .articletext h2{
	margin:25px 0 7px 0;
	}

main h2 mark{
	position:absolute;
	top:5px;
	left:1px;
	width:28px;
	height:28px;
	margin:0;
	padding:0;
	border-radius:1em;
	background:#fff;
	font-size:85%;
	text-align:center;
	line-height:28px;
	}

main h2 em{
	font-size:60%;
	}

main h3{
	position:relative;
	margin:5px 0;
	padding:6px 0;
	text-align:left;
	line-height:1.2em;
	font-size:125%;
	font-weight:bold;
	color:#fff;
	}

main h3 mark{
	float:left;
	height:calc(1em + 10px);
	margin:0 4px 0 0;
	padding:0;
	background:transparent;
	color:#fff;
	}

main h4{
	position:relative;
	margin:0 0 5px 0;
	padding:6px;
	background:rgba(255,255,255,0.8);
	text-align:center;
	line-height:1.2em;
	font-size:100%;
	color:#000;
	}

main h5{
	position:relative;
	margin:0 0 5px 0;
	padding:6px;
	background:#333;
	text-align:left;
	line-height:1.2em;
	font-size:100%;
	color:#fff;
	}

main h2 .button, main h3 .button, main h4 .button, main h5 .button{
	width:110px;
	margin:5px 3px 0 auto;
	padding:5px 10px;
	line-height:1.0em;
	letter-spacing:0.01em;
	font-size:12px;
	}
	
	@media print, screen and (min-width:640px){
	main h2 .button, main h3 .button, main h4 .button, main h5 .button{
		position:absolute;
		top:0;
		right:0;
		}
	}

main h4 .button{
	border:1px solid #000;
	color:#000;
	}


/* ▼ aside ▼ */

aside h2{
	position:relative;
	margin:0 0 15px 0;
	padding:8px 4px;
	background:rgba(0,0,0,0.8);
	text-align:center;
	line-height:1.2em;
	letter-spacing:0.03em;
	font-size:130%;
	font-weight:bold;
	color:#fff;
	}

aside h2::before{
	position:absolute;
	bottom:-12px;
	left:50%;
	width:24px;
	height:12px;
	margin:0 -12px;
	padding:0;
	background:linear-gradient(to bottom left, rgba(0,0,0,0.8) 50%, transparent 50%) top left /50% 100% no-repeat, linear-gradient(to bottom right, rgba(0,0,0,0.8) 50%, transparent 50%) top right /50% 100% no-repeat;
	content:"";
	}

aside nav{
	margin:-5px 0;
	padding:0;
	}

aside nav a{
	position:relative;
	margin:0;
	padding:2px 0 2px 2px;
	}

aside nav a.navsub{
	height:25px;
	}

aside nav a.navpast{
	height:91px;
	}

aside nav a::before{
	position:absolute;
	top:0;
	right:2px;
	bottom:0;
	margin:auto;
	display:block;
	width:9px;
	height:9px;
	border-top:1px solid #ccc;
	border-right:1px solid #ccc;
	transform:rotate(45deg);
	content:"";
	}

aside nav a::after{
	position:absolute;
	top:0;
	right:6px;
	bottom:0;
	margin:auto;
	display:block;
	width:9px;
	height:9px;
	border-top:1px solid #ccc;
	border-right:1px solid #ccc;
	transform:rotate(45deg);
	content:"";
	}

aside nav .navicon{
	float:left;
	width:62px;
	height:62px;
	margin:0;
	padding:0;
	background:center center /contain no-repeat;
	}

aside nav a.navsub .navicon{
	position:relative;
	height:21px;
	}

aside nav a.navsub .navicon::before{
	position:absolute;
	top:0;
	right:10px;
	bottom:0;
	margin:auto;
	display:block;
	width:4px;
	height:4px;
	border-top:3px solid #fff;
	border-right:3px solid #fff;
	transform:rotate(45deg);
	content:"";
	}

aside nav a.navpast .navicon{
	height:87px;
	}

aside nav .navtitle{
	height:31px;
	margin:0 16px 0 0;
	padding:1px 0 0 7px;
	overflow:hidden;
	text-align:left;
	line-height:31px;
	letter-spacing:0.01em;
	font-size:110%;
	font-weight:bold;
	}

aside nav a.navsub .navtitle{
	height:21px;
	line-height:21px;
	font-size:90%;
	}

aside nav .navdetail{
	height:31px;
	margin:0 16px 0 0;
	padding:0 0 0 7px;
	overflow:hidden;
	text-align:left;
	line-height:31px;
	letter-spacing:0.03em;
	font-size:82%;
	}

aside nav hr{
	margin:5px 0;
	border-top:1px dotted rgba(238,238,238,0.8);
	}

aside nav hr.hrsub{
	border-top:1px dotted rgba(51,51,51,0.8);
	}


/* ▼ bgcolor ▼ */

.bgred{
	background:rgba(255,221,221,0.9);
	color:#000;
	}

.bgred_red{
	background:rgba(255,221,221,0.9);
	text-shadow:1px 1px 2px #ccc;
	color:#f00;
	}

.bggray{
	background:rgba(255,255,255,0.8);
	color:#000;
	}

.bggray_red{
	background:rgba(255,255,255,0.8);
	text-shadow:1px 1px 2px #ccc;
	color:#f00;
	}

.bgtransparent{
	background:transparent;
	color:#000;
	}

.bgtransparent_red{
	background:transparent;
	color:#f00;
	}

.bgblack{
	background:#333;
	color:#fff;
	}

.bgblack_red{
	background:#333;
	color:#f00;
	}

.bgr{ /* 赤プレ(1-4位) */
	background:rgba(213,0,0,0.8) ;
	}

.bgb{ /* 青プレ(5-12位) */
	background:rgba(41,121,255,0.8) ;
	}

.bgy{ /* 黄プレ(13-24位) */
	background:rgba(255,214,0,0.8) ;
	}

.bgg{ /* 緑プレ(25-48位) */
	background:rgba(0,200,83,0.8) ;
	}

.bgd{ /* 灰プレ(49位以下) */
	background:rgba(158,158,158,0.8) ;
	}


/* ▼ 表示関係 ▼ */

.opcl{
	display:none;
	margin:0 0 6px 0;
	padding:5px 7px;
	}

.small{
	line-height:1.7em;
	letter-spacing:-0.01em;
	font-size:85%;
	}

@media print, screen and (min-width:640px){
.sponly{
	display:none;
	}
}

@media screen and (max-width:639px){
.pconly{
	display:none;
	}
}
