@charset "utf-8";

body {
	background-color: #336;
	font-family: monospace;
	position: relative;
	/* overflow: hidden; */
}
body.addPointerEventsNone {
	pointer-events: none;
}
section:not(.myInfo),h2 {
	user-select: none;
	-webkit-user-select: none; /* for safari */
}
div.portfolioBodyWrap {
	--portfolioBodyWrapH: 0px;
	width: 100%;
	max-width: 980px;
    height: auto;
	margin: 0px auto;
	
	position: relative;
	
	top: max(0px,calc( (100vh - var(--portfolioBodyWrapH))/2 ));
	
	visibility: hidden; /* 初期表示の切り替えに使える */
	/**display: none; /* 初期表示の切り替えに使える */
	/**opacity: 1.0; /* 初期表示の切り替えに使える */
}
div.previewFullview {
	--viewMargin: 10px;
    width: calc(100% - var(--viewMargin)*2);
    height: calc(100vh - var(--viewMargin)*2);
    
    background-color: #728;
    border-radius: 5px;

    position: absolute;
	left: var(--viewMargin);
	top: var(--viewMargin);

    overflow: hidden;

    display: none;
}

div.wrapScreenControl {
	/* iconのアニメーション制御用に座標系を正位置にする為のdiv */
	--wrapScreenControlW: 2px;
	--wrapScreenControlH: 2px;
	
	/* fullPreview用のボタンの情報 */
	--bottonW: 0px;
	--bottonH: 0px;
	--buttonX: 0px;
	--buttonY: 0px;

	/* 画面を覆う用のサイズ指定 */
	--wrapScreenMaxSize: max(150vw,150vh);
	
	/* アイコンのドラッグ用 */
	--dragX: 50vw;
	--dragY: 50vh;
	/*--dragX_vw: calc( 100 * var(--dragX) / 100vw); /*単位付きの割り算はできないっぽい*/
	/*--dragY_vh: calc( 100 * var(--dragY) / 100vh); /*単位付きの割り算はできないっぽい*/
	--dragX_vw: 50vw;
	--dragY_vh: 50vh;

	/* アイコン */
	--iconSize1: 70px; /* 変化途中（正円）*/
	--iconSize2: 50px; /* 完成形 */
	
	display: inline-block;
	background-color: rgba(128,128,128,0.5);
	
	width: var(--wrapScreenControlW);
	max-width: 1028px;
	height: var(--wrapScreenControlH);
	
	position: absolute;
	left: calc((100vw - var(--wrapScreenControlW))/2);
	top: calc((100vh - var(--wrapScreenControlH))/2);
	
	z-index: 10;
	
	overflow: visible;
}
.add_overflow_hidden {
	/* bodyにも使いたいが */
	/* このままで使うには優先度が低いかも… */
	overflow: hidden;
}

div.add_all_visible {
	display: block;
	visibility: visible;
	opacity: 1.0;
}

div.wrapText {
	pointer-events: none;
	position: absolute;
	left: calc(-1 * 100vw/2);
	top: calc(-1 * 100vh/2);
	
	opacity: 0;
	visibility: hidden;
	
	font-weight: bold;
	color: #fff;
	text-align: center;
	vertical-align: middle;
	
	z-index: 1; /** なぜかwrapScreenが上に来る **/
}

div.wrapScreen {
	
	position: absolute;
	left: calc(-1 * max(100vw,100vh)/2);
	top: calc(-1 * max(100vw,100vh)/2);
	
    opacity: 0;
	visibility: hidden;
	
	transform: rotate(0deg);
	/* transition: all 0.5s ease 0s; */
}

div.wrapTextStart {
	
	width: var(--bottonW);
	height: var(--bottonH);
	
	left: var(--bottonX);
	top: var(--bottonY);

	font-size: 10px;
	line-height: 10px;
	font-weight: bold;
    color: #fff;
    text-align:center;
    
}
div.wrapScreenStart {
	
	width: var(--bottonW);
	height: var(--bottonH);
	
	left: var(--bottonX);
	top: var(--bottonY);
	
	background-color: #e6e;
}

div.wrapTextEnd {
	left: calc(-1 * 100vw/2);
	top: calc(-1 * 100vh/2);
	
	display: block;
	opacity: 1.0;
    visibility: visible;
	
	width: 100vw;
	height: 100vh;
	
	color: #fff;
	font-size: 100px;
	line-height: 100vh;
	font-weight: bold;
	text-align: center;
	
	/**background-color: blue; /**/
}
div.wrapScreenEnd {
	
	display: block;
	opacity: 1.0;
    visibility: visible;
	
	width: var(--wrapScreenMaxSize);
	height: var(--wrapScreenMaxSize);
	
	background-color: #e6e;
	border-radius: 0%;
	
	left: calc((var(--wrapScreenControlW) - var(--wrapScreenMaxSize))/2);
	top: calc((var(--wrapScreenControlH) - var(--wrapScreenMaxSize))/2);
	
	transform: translate(0px, 0px) rotate(0deg);
}
div.wrapScreenCircle {
	border-radius: 50%;
}
div.wrapTextIcon {
	
	display: block;
	opacity: 1.0;
    visibility: visible;
	
	width: var(--iconSize2); 
	height: var(--iconSize2);
	
	color: #630;
	font-size: 10px;
	line-height: 13px;
	font-weight: bold;
	text-align: center;
	
	left: calc(-1*var(--iconSize2)/2);
	top: calc(-1*var(--iconSize2)/2 + 1.2em);

	transition: all 50ms ease 0s;
}
div.wrapNavi{
	width: 8em;
	
	position: absolute;
	left: calc(100% - 50px);
	top: calc(100% - 50px);
	
	font-weight: bold;
	color: #a6a;
	text-align: center;
	vertical-align: middle;
}
div.wrapScreenIconCircle {
	
	display: block;
	opacity: 1.0;
    visibility: visible;
	
	width: var(--iconSize1); 
	height: var(--iconSize1);
	
	background-color: #e99;
	border-radius: 50%;
	
	left: calc(-1 * var(--iconSize1)/2);
	top: calc(-1 * var(--iconSize1)/2);
	
	overflow: hidden;
	transform: translate(0px, 0px) rotate(45deg);
}

div.wrapScreenIcon {
	cursor: grab;
	display: block;
	opacity: 1.0;
    visibility: visible;
	
	width: var(--iconSize2); 
	height: var(--iconSize2);
	
	background-color: #e99;
	border: 1px solid #fcc;
	border-radius: 0px 50% 75% 50%;
	
	left: calc(-1*var(--iconSize2)/2);
	top: calc(-1*var(--iconSize2)/2);
	
	overflow: hidden;
	transform-origin: center;
	transform: translate(0px, 0px) rotate(45deg);
}
div.wrapScreenIcon::after {
	content: "";
	display: block;
	width: calc(var(--iconSize2)/6); 
	height: calc(var(--iconSize2)/6);
	background-color: #fee;
	border-radius: 50%;
	filter: blur(0px);
    transform: rotate(45deg);

	position: absolute;
	left: 20%; bottom: 70%;
}
div.wrapScreenIcon::before {
	content: "";
	display: block;
	width: calc(var(--iconSize2)/2); 
	height: calc(var(--iconSize2)/2 + 15px);
	background-color: rgba(255,238,238,0.5);
	border-radius: 50%;
	filter: blur(2px);
    transform: rotate(45deg);

	position: absolute;
	left: 34%; bottom: 5%;
}
div.wrapScreenIcon:active {
	cursor: grabbing;
}

div.iconMoveX {
	border-radius: 0px 50% 200% 50%; /* 横長 */
}

div.iconMoveUP {
	border-radius: 0px 100% 50% 100%; /* 縦長 */
}

div.iconMoveDOWN {
	border-radius: 50% 100% 0px 100%; /* 縦長 */
}

div.iconMoving {
	--iconMovingRad: 0;

	position: absolute;
	transform: rotate( calc(var(--iconMovingRad) * 1rad) );
}
div.kiseki {
	width: 50px; height: 50px;
	border-radius: 0px 50% 75% 50%;
	background-color: #f36;
	position: absolute;
	
	opacity: 1;
	transition: all 1s ease-in 0s;
}

div.wrapScreenControl.able {
	filter: drop-shadow(0px 10px 7px rgba(0,64,64,0.3) );
	background-color: yellow;

	left: calc(var(--dragX_vw));
	top: calc(var(--dragY_vh));
}

input[type="checkbox"][name="wrapScreenCheck"] {
    /**/display: none;/**/
    position: absolute;
}
/* input[type="checkbox"]:checked~div.wrapScreen {
    opacity: 1.0;
    visibility: visible;
} */

header {
	width: 100%; /* [要対応]規定値以下でスクロールで隙間が生じる */
	height: auto;
    background-color: #e99;
    padding: 10px;
    padding-bottom: 5px;
    margin-bottom: 5px;
}
h1 {
    color: #fff;
    font-size: 12px;
	font-weight: bold;
	line-height: 12px;
}

main {
	width: calc(100% - 20px);
    height: 566px;
    min-width: 680px;
	max-width: 1200px;
    background-color: #ffe;
    padding: 10px 5px;
    margin: 5px auto;
	/* transform: scale(50%); */
	
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	--gapX: 10px;
	--gapY: 15px;
	gap: var(--gapY) var(--gapX);

	position: relative;
	transform:scale(1.0);
}

section {
	display: block;
	/* background-color: #ee9; */
	background-color: #9f9;
    /* width: calc(100% - 10px); */
    /* width: 23em; */
	/* min-width: 200px; */
    padding: 5px;
    margin: 0px 0px;
	/* margin-bottom: 20px; */

	position: relative;
}
section.topLoading {
	width: 100%; height: 100vh;
	text-align: center;
	background-color: transparent;
	
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	row-gap: 10px;

	position: absolute;
	left: 0px; top: 0px;
}
section.topLoading .viewPic {
	width: 64px; height: 72px;
	background: url("../images/char01.png") no-repeat;

}
section.topLoading .viewTxt {
	color: #eef;
	font-weight: bold;
}
section.topLoading.loaded {
	transform: scale(0);
	transition: transform 1s ease 0s;
}

div.titleWrap {
	width: 100%;
	height: 2em;
	display: flex;
	gap: 5px;
	
	margin-bottom: 5px;
}
div.titleWrap>span.decoR {
	height: 100%;
	transform: transLateX(-5px);
	gap: 5px;
}
div.titleWrap>span.decoR::before,
div.titleWrap>span.decoR::after {
	height: 100%;
	background-color: #aae;
	border-radius: 0;
}
div.titleWrap>span.decoR:nth-of-type(1)::before { /* js制御にするかも */
	width: 10px;
}
div.titleWrap>span.decoR:nth-of-type(1)::after {
	width: 9px;
}
div.titleWrap>span.decoR:nth-of-type(2)::before {
	width: 8px;
}
div.titleWrap>span.decoR:nth-of-type(2)::after {
	width: 7px;
}
div.titleWrap>span.decoR:nth-of-type(3)::before {
	width: 6px;
}
div.titleWrap>span.decoR:nth-of-type(3)::after {
	width: 5px;
}
div.titleWrap>span.decoR:nth-of-type(2) {
	opacity: 0.5;
}
div.titleWrap>span.decoR:nth-of-type(3) {
	opacity: 0.25;
}
h2 {
	font-family: sans-serif;
	height: 100%;
    color: #fff;
	font-size: 16px;
	line-height: 16px;
    font-weight: bold;
    background-color: #aae;
    padding: 5px;
    margin: 0px 5px 5px;
}
h2::first-letter {
	color: yellow;
}
section.creations h2 {
	letter-spacing: 0.1em;
	padding-left: 0.5em;
	width: 100%;

	border-radius: 5px 0px 0px 5px;
}

div.scroll {
	width: calc(100% - 10px);
	height: 10px;
	padding: 0px 15px;
	border-radius: 5px;
	
	display: flex;
	align-items: center;
	text-align: center;
	position: absolute;
	left: 5px; bottom: 3px;
	
	--scrollX : 0px;
	
	z-index: 5;
	opacity: 0.5;
	transition: all 0.4s ease 0.1s;
	/** background-color: red; /**/
}
div.scroll>div.bar {
	content: "";
	display: inline-block;
	width: 100%;
	height: 5px;
	background-color: green;
	border-radius: 5px;

	transition: height 0.4s ease 0.1s;
}
div.scroll>div.point {
	content: "";
	display: block;
	width: 20px; height: 5px;
	background-color: yellow;
	border-radius: 50%/0%;
	
	position: absolute;
	left: var(--scrollX);

	//transition: all 0.4s ease 0.1s;
}
div.scroll>div.point.addTransition {
	transition: all 0.4s ease 0.1s;
}
div.scroll.pointScrolling,
div.scroll:hover {
	height: 36px;
	background-color: rgba(0, 0, 0,0.3);
	border-radius: 5px;
	transform: transLateY(1px);
	opacity: 100;
	/* transition: all 0.3s ease-in 0.1s; */
}
div.scroll>div.bar.pointScrolling,
div.scroll:hover>div.bar {
	height: 10px;
	/* transition: height 0.3s ease-in 0.1s; */
}
div.scroll>div.point.pointScrolling,
div.scroll:hover>div.point {
	height: 20px;
	border-radius: 50%/50%;
	/* transition: height,border-radius 0.3s ease-in 0.1s; */
}
/***** creations *****/
section.creations {
	width: 290px;
	height: auto;
	
	order: 1;
}
div.cardsWrapBG {
    width: 100%;
    background-color: #ffe;
    border-radius: 5px;
}
div.cardsWrap {
    /* background-color: #ffe; */
    width: calc(100% - 20px);
	display: flex;
	/*flex-direction: row-reverse;*/
    gap: 10px 5px;
    margin: 0px auto;
    margin-bottom: 10px;
    padding: 10px 0px;

	/**/overflow: hidden;/**/
	/**scrollbar-width: none;/**/
	/** overflow-x: scroll; /**/
	/**/scroll-snap-type: x; /** proximity;/**/

	transition: height 0.3s ease 0s;
}
/**
div.cardsWrap::-webkit-scrollbar {
	display:none;
}/**/

div.card {
    background-color: #ff9;
    width: 200px; height: calc(300px - 30px);
    padding: 5px;
    /* margin: 10px 10px 20px; */
    flex-shrink: 0;
	border-radius: 5px;
	position: relative;

	//overflow: hidden;
	
	//scroll-snap-align: center;
	//scroll-margin: 0px 20px;
	//scroll-snap-stop: always;
}

div.cardsWrapBG:has(div.card:hover):not(:has(div.scroll>div.point:active)) { cursor: grab; }
div.card:active,
html:has( div.card:active ) { cursor: grabbing; }

div.card:first-of-type {
	/* scroll-snap-align: start; */
	/*margin-left: 25px /* カードの中央表示のため要検討 */
}
div.card:last-of-type {
	//scroll-snap-align: end;
}
div.card.notRelease {
	filter: grayscale(100%) brightness(0.3);
}

h3 {
    background-color: #fcc;
    color: #644;
	font-size: 16px;
	line-height: 16px;
    font-weight: bold;
    padding:5px 10px;
    margin-bottom: 5px;
}
div.card>h3.title {
	height: 1.7em;
	background-color: rgba(0,0,0,0);
	overflow: hidden;
	position: relative;
	z-index: 1;
}
div.card>h3.title>span {
	position: absolute;
	bottom: 3px;
	transform-origin: left bottom;
	transform: rotate(-2deg) skewX(-5deg);
}
div.card>h3.title::after {
	content: "";
	display: block;
	width: calc(100%);
	height: 100%;
	background-color: #fcc;
	border-radius: 2px;
	position: absolute;
	left: 0px; top: 0px;
	z-index: -1;
}
div.card>div.statusWrap {
	width: 20px; height: 20px;
	position: absolute;
	right: 9px; top: 9px;
	z-index: 2;
	/* background-color: rgba(0,0,0,0.5); */
}
div.card div.status {
	font-family: impact;
	box-sizing: content-box;
    display: inline-block;
    background-color: #aaf;
	width: 50px; height: 50px;
	border: 1px solid #66c;
	/* border: 4px solid #ff9; */
	border-radius:  10px 50% 75% 50%;
    margin-bottom: 10px;
	position: absolute;
	left: 0px; top: 0px;
	overflow: hidden;
	transform-origin: 10px 10px;
	transform: rotate(45deg);

	transition: all 0.6s ease-in-out 0s;
}

div.card div.status.Swing8 {
	transform: rotate( calc((45 + 0.5)*1deg) );
}
div.card div.status.Swing7 {
	transform: rotate( calc((45 - 1)*1deg) );
}
div.card div.status.Swing6 {
	transform: rotate( calc((45 + 2.5)*1deg) );
}
div.card div.status.Swing5 {
	transform: rotate( calc((45 + 5)*1deg) );
}
div.card div.status.Swing4 {
	transform: rotate( calc((45 - 10)*1deg) );
}
div.card div.status.Swing3 {
	transform: rotate( calc((45 + 20)*1deg) );
}
div.card div.status.Swing2 {
	transform: rotate( calc((45 - 30)*1deg) );
}
div.card div.status.Swing1 {
	transform: rotate( calc((45 + 30)*1deg) );
}
div.card div.status.Swing0 {
	transform: rotate( calc((45 - 60)*1deg) );
}
div.card div.status.SwingR {
	transform: rotate( calc((45 - 45)*1deg) );
}
div.card div.status.SwingL {
	transform: rotate( calc((45 + 45)*1deg) );
}

div.card>div.statusWrap>div.status.shrink {
	width: 16px; height: 16px;
	border-radius:  50% 10px 50% 50%;
	/* border: 2px solid #ff9; */
	border: 1px solid #66c;
	left: 1px; top: 1px;
	transform: rotate(0deg);
}
div.card>div.statusWrap>span.circleDeco {
	position: absolute;
	left: 3px; top: 3px;
	margin: 0px;
	z-index: 5;
}
div.card>div.statusWrap>div.status>span.view {
	color: #fff;
    font-size: 24px;
	font-weight: bold;
	letter-spacing: 0.05em;
	position: absolute;
	left: 2px; top: 10px;
	transform: rotate(-60deg);
}
div.card >div.thumbNail {
	width: 100%;
	height: 100px;
	background-color: green;
	border: 1px solid orange;
	border-radius: 5px 0px 5px 5px;
	margin-bottom: 10px;
	padding: 10px;
	overflow: hidden;

	position: relative;
}
img {
	width: 100%; height: 100%;
}
.thumbNail>img {
	position: absolute;
	left: 0px; top: 0px;
	object-fit: cover;
	object-position: center top;
}

div.card:not(:has( div.shrink )) {
	z-index: 2; /* shrinkされていないものを上に */
	/* background-color: blue; */
}
div.cardsWrap>div.card:last-of-type:not(:has(div.shrink)) {
	/* background-color: yellow; */
	/* margin-right: 100px; */
}

div.card >p {
    display: inline-block;
	color: #644;
	font-size: 12px;
	line-height: 12px;
    padding: 0px 5px;
}

div.card >p:has(>a) {
    text-align: right;
    background-color: #afa;
    padding: 3px;
    
    width: 100%;
    position: absolute;
	right: 0px; bottom: 0px;

	display: flex;
	justify-content: space-between;
}
div.card >p >a {
    display: inline-block;
	font-size: 10px;
	line-height: 10px;
	font-weight: bold;
    color: #fff;
    padding: 0.2em 1em;
	margin: 0px 5px;
    background-color: #aae;
	border: 1px solid #99c;
    /* border: 2px solid #66f; */
    border-radius: 5px;

	transition: color,background-color 0.3s ease 0s;
}
div.card >p >a:hover {
	color: #aae;
	background-color: #fff;
}
div.card >p:not(:last-of-type) >a {
    margin: 2px 0px;
}
/****** Skills ******/
section.mySkills {
	/* float: left; */
	/* width: 24.5em; */
	--skillHeight: 190px;
	display: flex;
	width: 290px;
	height: 190px;
	/*background-color: rgba(0,0,0,0);*/
	background-color: #9f9;
	color: #363;
	font-size: 12px;
	padding: 0 5px;
	padding-left: 0px;
	position: relative;
	overflow: hidden;
	/*z-index: 1;*/
	order: 2;
}
section.mySkills:before {
	box-sizing: content-box; 
	content: "";
	display: block;
	width: 200px;
	height: 7px;
	
	border-top: 10px solid #ffe;
	border-bottom: 8px solid #ffe;
	
	position: absolute;
	right: -100px; top: 10px;
	transform-origin: center top;
	transform: rotate(45deg);
	/*z-index: -1;*/
}
section.mySkills:after {
	box-sizing: content-box; 
	content: "";
	display: block;
	width: 200px;
	height: 11px;
	
	border-top: 6px solid #ffe;
	border-bottom: 4px solid #ffe;
	
	position: absolute;
	right: -100px; top: 45px;
	transform-origin: center -40px;
	transform: rotate(45deg);
	/*z-index: -1;*/
}
section.mySkills>h2 {
	width: 1.5em;
	height: var(--skillHeight);
	writing-mode: vertical-rl;
	line-height: 1.1em;
	letter-spacing: 0.1em;
	text-align: right;
	background-color: rgba(0,0,0,0);
	border-radius: 4px 0px 0px 4px;
	padding: 0px 3px;
	padding-bottom: 0.8em;
	margin: 0px;
	overflow: hidden;

	position: relative;
	z-index: 5;
}
section.mySkills>h2:before {
	content: "";
	display: block;
	width: 1.5em;
	height: 60%;
	background-color: #aae;
	position: absolute;
	right: 0px; bottom: -2.0em;
	transform-origin: 100% 0%;
	transform: skewY(45deg);
	z-index: -1;
}
section.mySkills>h2:after {
	content: "";
	display: block;
	width: 0.7em;
	height: calc(100%);
	background-color: #aae;
	border-radius: 4px 0px 0px 4px;
	position: absolute;
	left: 0px; top: 0px;
	z-index: -1;
}
section.mySkills>ul {
	margin: 10px;
	margin-right: 0px;
	
	background-color: rgba(0,0,0,0);
}

ul.category>li {
    line-height: 12px;
	font-weight: bold;
    background-color: #ff9;
    width: 65%;
    padding: 4px 8px 2px;
    margin-bottom: 5px;
    border-radius: 0px 10px 10px 0px;
}
ul.category>li:nth-of-type(1),
ul.category>li:nth-of-type(2) {
	margin-left: -12px;
}
ul.category>ul {
    margin: 0px 15px;
}
ul.category>ul:first-of-type>li{
	margin-left: -10px;
}
ul.category>ul>li:last-of-type{
    margin-bottom: 10px;
}

ul.category>ul:last-of-type>li:last-of-type{
    margin-bottom: 0px;
}

/***** myInfo *****/
section.myInfo {
	/* width: calc(100% - 24.5em); */
    min-width: 18em;
	/* width: 280px; */
	color: #363;
	margin-bottom: 0px;
	
	order: 4;
}
section.myInfo>h2 {
	background-color: rgba(0,0,0,0);
    font-size: 12px;
    line-height: 12px;
	height: 1.5em;
	padding: 0.3em 10px;
	border-radius: 4px;
	position: relative;
	overflow: hidden;
	z-index: 5;
}
section.myInfo>h2:before {
	content: "";
	display: block;
	width: 50%;
	height: 2.0em;
	
	background-color: #aae;
	position: absolute;
	left: 0px; top: 0px;
	transform-origin: 100% 0%;
	transform: skewX(-45deg);
	z-index: -1;
}
section.myInfo>h2:after {
	content: "";
	display: block;
	width: calc(100%);
	height: 0.75em;
	background-color: #aae;
	border-radius: 2px;
	position: absolute;
	left: 0px; top: 0px;
	z-index: -1;
}

section.myInfo>p  {
	font-size: 12px;
	line-height: 14px;
	width: 100%;
    padding: 0px 15px;
    text-align: right;
}

section.myInfo>p:first-of-type {
margin-top: -10px;
}

footer {
	width: 100%; /* [要対応]規定値以下でスクロールで隙間が生じる */
	height: 20px;
    color: #fff;
	font-size: 10px;
	line-height: 10px;
	font-weight: bold;
    text-align: right;
    background-color: #e99;
    padding: 5px 20px;
}

/***** preView *****/
section.preView {
	/*flex-shrink: 1; /* main からの指定 */
	display: flex;
	flex-direction: row-reverse;
	/* width: 280px; */
	width: calc(100% - 290px - var(--gapX));
	height: calc(100% - 51px - var(--gapY));
    /* float: right; */
    /* width: calc(100% - 23em - 20px); */
    /* height: calc(100% - 73px); */
    /* margin-bottom: 10px; */
	/* border:5px solid blue; */
    border-radius: 0px;
	background-color: #ffc;
	/* background-color: #66c; */
	padding: 10px;
	padding-right: 5px;
	/* position: relative; */

	overflow: hidden;
	order: 3;
}
section.preView>h2 {
	font-size: 18px;
	line-height: 18px;
	//width: 1.8em;
	writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -webkit-writing-mode:vertical-rl;
	letter-spacing: 0.05em;
	background-color: rgba(0,0,0,0);
	border-radius: 4px 0px 0px 4px;
	padding: 0 6px;
	padding-top: 0.5em;
	margin: 0px;
	margin-left: 10px;
	border-radius: 4px;
	
	overflow: hidden;

	position: relative;

	z-index: 5;
}
section.preView>h2:before {
	content: "";
	display: block;
	width: 2.0em;
	height: 50%;
	background-color: #aae;
	position: absolute;
	right: 0px; top: 0px;
	transform-origin: 100% 0%;
	transform: skewY(45deg);
	z-index: -1;
}
section.preView>h2:after {
	content: "";
	display: block;
	width: 0.75em;
	height: calc(100%);
	background-color: #aae;
	border-radius: 0px 0px 0px 4px;
	position: absolute;
	right: 0px; top: 0px;
	z-index: -1;
}

div.viewBody {
	width: 100%;
	height: 100%;
}
div.frameWrap {
	--decoSpan: 5;
	
	width: 100%;
	height: calc(100% - 180px);
	margin-bottom: 25px;
	
	position: relative;
	display: flex;
	/* justify-content: space-between; */
	align-items: center;
	gap: 0px calc(var(--decoSpan)*1px);
	
	z-index: 1;
	
	/*background-color: blue;*/
}
span.decoL, span.decoR {
	display: inline-block;
	/* width: 20px;  */
	height: 90%;
	/** background-color: rgba(0,0,0,0.5); /**/
	
	display: flex;
	justify-content: center;
	gap: 0 calc(var(--decoSpan)*1px);
	align-items: center;
}
span.Quarter {
	height: 20%;
	opacity: 0.25;
	display: none;
}
span.half {
	height: 40%;
	opacity: 0.5;
}
span.threeQuarter {
	height: 60%;
	opacity: 0.75;
	display: none;
}
span.decoL::after, span.decoR::before {
	content: "";
	display: inline-block;
	width: 5px; height: 100%;
	background-color: #dd6;
	border-radius: 50%;

	opacity: 0.75;
}

span.decoL::before, span.decoR::after {
	content: "";
	display: inline-block;
	width: 5px; height: 70%;
	background-color: #dd6;
	border-radius: 50%;

	opacity: 0.5;
}
div.frameDeco {
	width: 100%; height: 100%;

	padding: 3px;
	border: 3px solid #dd6;
	border-radius: 6px 6px 0px;
	
	/*background-color: blue;*/
}



div.frame {
	width: 100%; height: 100%;
	border-radius: 3px;
    /* margin: 10px auto 3px; */
	/* overflow: hidden; */
    
    position: relative;

    /* outline-width: 3px;
    outline-offset: 3px;
    outline-style: solid;
    outline-color: #dd6; */

	background-color: #6e6;
	
	pointer-events: all;
}
div.toggleBtnWrap {
	--toggleBtnWrapWidth: calc(100% - (5px*4 + 5px*4)*2);
	/*width: var(--toggleBtnWrapWidth);*/
	width: 100%;
	/* height: auto; */
	text-align: right; /** レイアウト検討中 **/
	margin: 0 auto;
	position: relative;
	transform: translate(6px, 6px);
	/**background-color: rgba(0,0,255,0.05);/**/
}
div.viewToggleBtn {
	cursor: pointer;
	display: inline-block;
	font-family: impact;
	color: #ffe;
	font-size: 16px;
	line-height: 16px;
	letter-spacing: 0.05em;
	font-weight: bold;
	width: 2.8em; height: 1.4em;
	text-align: center;
	
	padding-top: 2px;
	padding-left: 12px;
	
	overflow: hidden;
	position: relative;
}
div.viewToggleBtn::before {
    cursor: pointer;
	content: "";
	display: inline-block;
	width: 2.8em; height: 2.8em;
	background-color: #dd6;
	border-radius: 0 0  5px 50%;
	
	position: absolute;
	left: 0px; bottom: 0px; /*calc(1.4em);*/
	z-index: -1;
}
div.preViewComent {
	color: #aa6;
	line-height: 1.4;
	text-align: justify;

	width: calc(100% + 1.2em);
	height: 10em;
	margin: 0px auto 4px;
	padding: 0.5em;
	background-color: #223;
	border: 1px solid #993;
	border-radius: 5px;
	
	position: relative;

	overflow: hidden;
}
div.preViewComent::before {
	display: block;
	content: "";
	width: calc(100% - 10px); height: 80%;
	box-shadow: 0px 35px 2px 2px rgba(200,200,200,0.2) inset;
	border-radius: 3px;
	
	position: absolute;
	left: 5px; top: 5px;
}
div.preViewComent::after {
	display: block;
	content: "";
	width: calc(100% - 20px); height: 2px;
	background-color: rgba(200,200,200,0.1);
	border-radius: 3px;
	
	position: absolute;
	right: 10px; bottom: 5px;
}

div.preViewBottom {
	width: calc(100% + 1.2em);
	/* height: 25px; */
	margin: 0 auto;
	background-color: #faa;
	border-radius: 5px 5px;
	
    padding: 2px 3px 3px;
    display: flex;
    justify-content: space-between;
    align-items: center;
	flex-wrap: wrap;
}

div.linkWrap {
	width: calc(100% - 68px);
	display: flex;
    justify-content: space-between;
	column-gap: 5px;
}
div.linkToOuter {
    cursor: pointer;
    display: none;
	font-size: 10px;
	line-height: 10px;
	font-weight: bold;
    color: #fff;
    padding: 0.2em 1em;
    background-color: #e6e;
	border: 1px solid #b6b;
	border-radius: 5px;
	
	margin-bottom: 1px;

	transition: color,background-color 0.3s ease 0s;
}
div.linkToOuter:hover {
	color: #e6e;
	background-color: #fff;
}
span.circleDeco {
	display: inline-block;
	width: 14px; height: 14px;
	background-color: #eea;
	border: 1px solid #996;
	border-radius: 50%;
	margin: 0px 5px;
	margin-bottom: 1px;
	
	display: flex;
	align-items: center;
	justify-content: space-around;
}
span.circleDeco:before {content: "";
	display: block;
	width: 8px; height: 8px;
	background-color: #ffc;
	border-radius: 50%;
	
	position: absolute;

	z-index: 1;
}
span.circleDeco:after {
	content: "";
	display: block;
	width: 10px; height:2.5px;
	background-color: #885;
	/* transform: rotate(20deg); */
	
	position: absolute;

	z-index: 2;
}
span.circleDeco.circleR {
	/* transform: rotate(-90deg); */
}
/**
div.pic {
	background: url("../images/main11.png") no-repeat center/contain;
	width: 200px;
	height: 200px;
	left: 224px;
    top: 352px;
    position: absolute;
    z-index: 100;
}
/**/
div.pic2 {
	background: url("../images/test.png") no-repeat center;
	width: 100px;
	height: 100px;
	right: 10px;
    top: 278px;
    position: absolute;
    z-index: 100;

	display: none;
	opacity: 1.0;
}
/**/
header.hasTransition1s,
main.hasTransition1s,
footer.hasTransition1s,
div.portfolioBodyWrap,
div.portfolioBodyWrap>section,
div.portfolioBodyWrap>section.mySkills, 
div.portfolioBodyWrap>section.preView {
	transform: scale(1.0);
	transition: all 0.8s ease-in-out 0s;

}
main.hasTransition1s {
	transition: all 0.6s ease-in-out 0.2s;
}
header {
	margin: 0 auto;
	transform-origin: center bottom;
}
main {
	overflow: hidden;
	transform-origin: center;
}
footer {
	margin: 0 auto;
	transform-origin: top bottom;
}
div.portfolioBodyWrap.opening>section,
div.portfolioBodyWrap.opening>section.mySkills, 
div.portfolioBodyWrap.opening>section.preView {
	/* display: none; */
	transform: scale(0);
}
div.portfolioBodyWrap.opening>header {
	width: 100px; height: 50px;
	padding: 0;
	padding-left: calc((100px - 1em * 7)/2);
	padding-top: 35px;
	margin: 0px auto;

	border-radius: 10px 10px 0px 0px;
}
div.portfolioBodyWrap.opening>main {
	width: 10px; min-width: 0px;
	height: 0px;
	padding: 0;
	margin: 0px auto;
}
div.portfolioBodyWrap.opening>footer {
	width: 100px; height: 50px;
	padding: 0;
	padding-right: 10px;
	padding-top: 10px;
	margin: 0px auto;

	border-radius: 0px 0px 10px 10px;
}
div.portfolioBodyWrap.opening {
	width: 100px; height: 100px;
	top: max(0px,calc( (100vh - 100px)/2 ));
}

/*** レスポンシブ ***/
@media screen and (max-width:768px) {
	main {
		max-width: calc(768px - 27px - 10px - 20px);
		min-width: auto;
		height: calc(100vh - 27px - 10px - 20px);

		display: flex;
		flex-direction: row;
		justify-content: space-around;

		overflow: hidden;
		overflow-y: auto;
	}
	section.creations,
	section.mySkills,
	section.myInfo,
	section.preView {
		width: 100%;
		max-width: auto;
	}
	section.preView {
		height: 75vh;
	}
	body {
		overflow: clip;
	}
	section.creations { order: 1; }
	section.preView { order: 2; }
	section.skills { order: 3; }

	div.cardsWrapBG.creationsClosed,
	div.cardsWrapBG.creationsClosed>div.scroll {
		height: 0px;
		overflow: hidden;
	}
	section.creations:has(.creationsClosed) {
		padding-bottom: 0px;
	}
}
/*
div.portfolioWrap {
    width:50px;
    height:50px;
    overflow: hidden;
    border-radius: 50%;
    opacity: 0.5;
}*/
/*
div.testDiv {
	--testCount: 0;
	--testCount2: calc(var(--testCount)*2);

	width: 100px; height: 100px;
	background-color: yellow;
	border-radius: 50%;

	position: absolute;
	left: calc(var(--testCount) * 1px);
	top: calc(var(--testCount2) * 1px);
}
*/