@charset "UTF-8";


/* ========================================= */
/* apps all */
/* ========================================= */

.apps--container{
  --bg:#fffaf7;
  --card:#ffffff;
  --ink:#1f2937;
  --ink-soft:#6b7280;
  --accent:#ff8ab2;
/* pink */
  --accent-2:#8bc4ff;
/* sky */
  --accent-3:#ffd56a;
/* sunny */
  --ring:rgba(255,138,178,.35);
  --shadow:0 10px 30px rgba(31,41,55,.10);
  --radius:18px;
}
.apps--container *{box-sizing:border-box}

body {
  font-family: "Noto Sans JP", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  color:var(--ink);
  background: radial-gradient(1200px 600px at 20% -10%, #ffe7ef 0%, transparent 55%),
    radial-gradient(1000px 600px at 120% 10%, #e1f2ff 0%, transparent 50%),
    var(--bg);
  line-height:1.65;
}


.apps--container .container{
	max-width:1100px;
	margin: clamp(16px, 3vw, 32px) auto;
	padding: 0 16px;
}



/* ========================================= */
/* header */
/* ========================================= */

.apps--container header{
  display:grid;
  gap:24px;
  align-items:center;
  grid-template-columns: 140px 1fr;
  background:var(--card);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:var(--shadow);
}
.apps--container .avatar{
  width: 120px;
  height:120px;
  border-radius:50%;
  background: linear-gradient(145deg,#ffe2ec,#fff);
  display:grid;
  place-items:center;
  border:4px solid #fff;
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
}
.apps--container .avatar.blue{
  background: linear-gradient(145deg,#E2F6FF,#fff);
}
.apps--container .avatar.orange{
  background: linear-gradient(145deg,#FFFDE2,#fff);
}


.apps--container .avatar::after{
	content:"🐾";
  font-size:48px;
  opacity:.9;
}

.apps--container .headings h1 {
	font-size: clamp(24px, 3.6vw, 36px);
  margin:0 0 6px;
}
.apps--container .sub{
	color:var(--ink-soft);
}
.apps--container .catch{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
  padding:8px 12px;
  border-radius:999px;
  background: linear-gradient(90deg, var(--accent) 0%, var(--accent-2) 100%);
  color:#fff;
  font-weight:700;
  box-shadow:var(--shadow);
}


@media screen and (max-width: 768px) {
  .apps--container header{
    grid-template-columns: none;
  }
  
  .apps--container .avatar{
    width: 60px;
    height:60px;
    margin: 0 auto;
  }
  .apps--container .avatar::after{
    font-size:24px;
  }
  
  /* H1 ------------ */
  .apps--container h1 {
    font-size: 20px;
  }
  
}

/* ========================================= */
/* main section */
/* ========================================= */

.apps--container .section{
  background:var(--card);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:24px;
}
.apps--container .section h2{
  margin-top:0;
  font-size:22px;
}



/* ========================================= */
/* 関連サービス */
/* ========================================= */
.apps--container .links{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.apps--container .link-btn{
  display:inline-block;
  padding:10px 14px;
  border-radius:12px;
  background:#f1f5f9;
  border:1px solid #e2e8f0;
  text-decoration:none;
  color:inherit;
}
.apps--container .link-btn:hover{
  box-shadow:var(--shadow);
}



/* ========================================= */
/* table */
/* ========================================= */

.apps--container .profile-table{
  border-collapse:separate;
  border-spacing:0; width:100%;
}
.apps--container .profile-table th{
  white-space:nowrap;
  font-weight:700;
  color:#475569;
  background:#f8fafc;
  border-top:1px solid #eef2f7;
  border-bottom:1px solid #eef2f7;
  width:11rem;
}
.apps--container .profile-table td{
  color:#334155;
  border-top:1px solid #f1f5f9;
  border-bottom:1px solid #f1f5f9;
}
.apps--container .profile-table tr:first-child th,
.apps--container .profile-table tr:first-child td{
  border-top:none;
}
.apps--container .profile-table tr:last-child th,
.apps--container .profile-table tr:last-child td{
  border-bottom:none;
}

/* mobile friendliness */
/* 行ごとにブロック表示 → スマホで読みやすく */

@media (max-width: 576px){
  
  .apps--container .profile-table tr{
    display:grid;
    grid-template-columns: minmax(8rem, 35%) 1fr;
    gap:.5rem;
    padding:.25rem 0;
  }
  .apps--container .profile-table th{
    background:transparent;
    border:none; padding:.35rem 0;
    color:#64748b;
  }
  .apps--container .profile-table td{
    border:none;
    padding:.35rem 0;
  }
  .apps--container .profile-table{ box-shadow:none; }
}

/* ========================================= */
/* pill badges */
/* ========================================= */
.apps--container .badges{
	display:flex;
	flex-wrap:wrap; gap:8px;
}
.apps--container .pill{
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.3rem .65rem; border-radius:999px; font-size:.9rem; font-weight:700;
  background:#f3f4f6; border:1px solid #e5e7eb; color:#1f2937;
}
.apps--container .pill--pink{
	background:rgba(255,138,178,.16);
	border-color:rgba(255,138,178,.35);
	color:#9d174d;
}
.apps--container .pill--sky{
	background:rgba(139,196,255,.16);
	border-color:rgba(139,196,255,.35);
	color:#0c4a6e;
}
.apps--container .pill--sun{
	background:rgba(255,213,106,.20);
	border-color:rgba(255,213,106,.45);
	color:#92400e;
}
.apps--container .pill--lv{
	background:rgba(99,102,241,.12);
	border-color:rgba(99,102,241,.35);
	color:#3730a3;
}

.apps--container .pill--bk{
	background:rgba(0,0,0,.68);
	border-color:rgba(0,0,0,.89);
	color:#fff;
}

/* ========================================= */
/* social btn */
/* ========================================= */

.apps--container .meta-bar{
	display:flex;
	flex-wrap:wrap;
	gap:.75rem 1rem;
	align-items:center;
	justify-content:space-between;
	padding:.75rem 0;
}
.apps--container .views{
	color:var(--ink-soft);
	font-weight:600;
	display: inline-block;
}
.apps--container .views i{
	margin-right:.35rem;
}
.apps--container .social .btn{ border-radius:999px; }
.apps--container .btn-x{ background:#000; color:#fff; }
.apps--container .btn-fb{ background:#1877f2; color:#fff; }
.apps--container .btn-line{ background:#06c755; color:#fff; }



/* ========================================= */
/* Cards (features & lists) */
/* ========================================= */

.apps--container .cardish{
	background:var(--card);
	border:1px solid var(--border);
	border-radius:16px;
	box-shadow:var(--shadow);
	height:100%;
}
.apps--container .cardish .ratio img{
	object-fit:cover;
}

/* ========================================= */
/* Horizontal scroll list */
/* ========================================= */

.apps--container .h-scroll{
	display:flex;
	gap:12px;
	overflow-x:auto;
	padding-bottom:.25rem;
	scroll-snap-type: x mandatory;
	padding: 10px;
}


.apps--container .h-scroll .item{
	position:relative;
	min-width: 260px;
	scroll-snap-align:start;
}
.apps--container .h-scroll .pill--wrapper {
  position:absolute;
  left:0px;
  top:0px;
  display:inline-flex; align-items:center; gap:.35rem;
  border-radius:999px;
  background:#ffffff; border:1px solid #ececec;
}

/* ========================================= */
/* Nyan talk */
/* ========================================= */

/* main-visual */
.main-visual{
  display:grid;
  gap:16px;
  grid-template-columns: 1fr;
  margin: 16px 0 24px;
}

/* 768px以上で横並び */
@media (min-width: 768px){
  .main-visual{ grid-template-columns: 1fr 1fr; }
}

.mv-item{
  position:relative;
  margin:0;
  overflow:hidden;
  border-radius:16px;
  background:#f6f7f9;
  box-shadow:0 10px 30px rgba(0,0,0,.06);
}
/* 見栄え用：アスペクト比を維持（対応ブラウザ） */
.mv-item img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio: 16/9;
  object-fit:cover;
}
.mv-caption{
  position:absolute;
  left:12px;
  bottom:12px;
  padding:6px 10px;
  font-weight:700;
  font-size:14px;
  color:#fff;
  background: rgba(0,0,0,.35);
  backdrop-filter: blur(2px);
  border-radius:10px;
}


/* button */
.apps--container .btn-chat {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:#ff8ab2; /* 単色ピンク */
  color:#fff;
  font-weight:700;
  font-size:1.05rem;
  padding:.65rem 1.2rem;
  border-radius:999px;
  text-decoration:none;
  box-shadow:0 4px 14px rgba(0,0,0,.15);
  transition: all .2s ease;
}
.apps--container .btn-chat:hover {
  background:#e6739c; /* 濃いピンクに変化 */
  transform: translateY(-2px);
  box-shadow:0 6px 20px rgba(0,0,0,.20);
}
.apps--container .btn-chat .icon {
  font-size:1.25rem;
}

.apps--container .btn-chat.blue {
  background:#48B5EC; /* 単色ブルー */
}

.apps--container .btn-chat.orange {
  background:#ffd56a; /* 単色オレンジ */
}

.apps--container .btn-chat.blue:hover {
  background:#169BDC; /* 濃いブルーに変化 */
}

.apps--container .btn-chat.orange:hover {
  background:#E6B12A; /* 濃いオレンジに変化 */
}





/* Tiny JS helpers */
.apps--container .tone{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:10px 0 0;
}
.apps--container .tone button{
  padding:6px 10px;
  border-radius:10px;
  border:1px solid #e5e7eb;
  background:#fff;
  cursor:pointer;
}
.apps--container .tone button[aria-pressed="true"]{
  background:var(--accent);
  color:#fff;
  border-color:transparent;
}


.apps--container .tone button.blue[aria-pressed="true"]{
  background:var(--accent-2);
}

.apps--container .tone button.orange[aria-pressed="true"]{
  background:var(--accent-3);
}



/* bubble */
.apps--container .bubble--down{
  position:relative;
  background:#fff;
  border:2px dashed var(--accent);
  border-radius:16px;
  padding:16px 18px;
  ;
}
.apps--container .bubble--down::after{
  content:"";
  position:absolute;
  bottom:-10px;
  left:22px;
  width:0;
  height:0;
  border-left:12px solid transparent;
  border-right:12px solid transparent;
  border-top:12px solid var(--accent);
}

.apps--container .bubble{
  position:relative;
  display:inline-block;
  background:#fff;
  border:2px dashed var(--accent);
  padding:.4rem .6rem;
  border-radius:12px; font-weight:800;
}

/* color blue */
.apps--container .bubble--down.blue {
  border:2px dashed var(--accent-2);
}
.apps--container .bubble--down.blue::after{
  border-top:12px solid var(--accent-2);
}
.apps--container .bubble.blue {
  border:2px dashed var(--accent-2);
}

/* color orange */
.apps--container .bubble--down.orange {
  border:2px dashed var(--accent-3);
}
.apps--container .bubble--down.orange::after{
  border-top:12px solid var(--accent-3);
}
.apps--container .bubble.orange {
  border:2px dashed var(--accent-3);
}


/* ========================================= */
/* neko gekijo */
/* ========================================= */

/* main visual */
.neko--gekijo--visual {
  padding: 10%;
  position: relative;
}

.neko--gekijo--visual--box {
  position: relative;
}

.neko--visual--box {
  position: absolute;
  right: 0;
  left: 0;
  bottom: 0px;
  margin: 0 auto;
  width: 80%;
  padding: 1rem;
  border-radius: 10px;
  border: 3px solid #333;
  box-shadow: 0px 10px 0px #333;
  background-color: #fff;
  color: #333;
  font-weight: bold;
}

.neko--visual--box:before {
  position: absolute;
  top: -20px;
  left: 50px;
  transform: skew(-35deg);
  height: 25px;
  width: 32px;
  border-right: 12px solid #333;
  background-color: #fff;
  content: "";
}

.neko--visual--box p {
  line-height: 1.5;
  text-align: center;
  font-size: 24px;
  margin: 0;
}


/* neko kakugen */
.neko--proverb{
  margin:2em auto;
  position: relative;
  padding: 1em 1.5em;
  border-top: solid 4px black;
  border-bottom: solid 4px black;
  width: 90%;
}
.neko--proverb:before, .neko--proverb:after{
  content: '';
  position: absolute;
  top: -10px;
  width: 4px;
  height: -webkit-calc(100% + 20px);
  height: calc(100% + 20px);
  background-color: black;
}
.neko--proverb:before {left: 10px;}
.neko--proverb:after {right: 10px;}
.neko--proverb p {
  margin: 0;
  padding: 0;
  font-size: 22px;
}

.neko--proverb--title{
  position: relative;
}
.neko--proverb--title img{
  position: absolute;
  top: -20px;
  right: 0;
  width: 20%;
}


@media screen and (max-width: 768px) {
  
  /* main visual */
  .neko--gekijo--visual {
    padding: 10px;
  }
  .neko--visual--box {
    width: 120%;
    padding: 0;
    margin-left: -10%;
    bottom: -20px;
  }
  
  .neko--visual--box:before {
    position: absolute;
    top: -14px;
    height: 20px;
    width: 26px;
    border-right: 12px solid #333;
  }
  
  .neko--visual--box p {
    font-size: 16px;
    font-weight: 400;
    padding: 10px;
  }
  
  /* neko kakugen */
  .neko--proverb
  {
    width: 100%;
  }
  .neko--proverb p
  {
    font-size: 16px;
  }
  
  .neko--proverb--title img{
    top: 15px;
    right: 0;
    width: 18%;
  }
}


/* ========================================= */
/* animation */
/* ========================================= */

/* heartbeat */
.anime-heartbeat {
  animation: heartbeat 2s infinite ease-in-out;
}

@keyframes heartbeat {
  0% {
    transform: scale(1);
  }
  3% {
    transform: scale(1.1);
  }
  8% {
    transform: scale(1);
  }
  15% {
    transform: scale(1.07);
  }
  25% {
    transform: scale(1);
  }
}

/* updown fluffy */
.anime--fluffy {
  animation: fluffy 3s ease-in-out infinite;
  transition: 1.5s ease-in-out;
}

@keyframes fluffy {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-20px);
  }
}

/* swaying fluffy */
.anime--fuwafuwa {
  animation: fuwafuwa 3s ease-in-out infinite alternate;
  transition: 1.5s ease-in-out;
}
@keyframes fuwafuwa {
  0% {
    transform:translate(0, 0) rotate(-7deg);
  }
  50% {
    transform:translate(0, -7px) rotate(0deg);
  }
  100% {
    transform:translate(0, 0) rotate(7deg);
  }
}


/* ========================================= */
/* 各サービストップページ、メインビジュアル */
/* ========================================= */

/* main visual */
.top--visual {
  text-align: center;
}

.top--visual .anime--fuwafuwa {
  display: inline-block;
  width: 270px;
  /*height: 270px;*/
  margin: 15px 0;
}

.apps--container .hero-img{
	aspect-ratio: 16/9;
	width:100%;
	object-fit:cover;
}


/* ========================================= */
/* イメージアップロード、イメージドロップ */
/* ========================================= */


.photo--wrapper--area {
  margin: 0 auto;
  width: 100%;
  border: 5px solid lightgray;
}
.photo--inner--area {
  width: 580px;
  margin: 0 auto;
}

/* imgupload css */
#imgupload--drop--area {
  border: 2px dashed #aaa;
  border-radius: 10px;
  padding: 30px;
  width: 100%;
  height: 280px;
  display: table;
  text-align: center;
  color: #666;
  margin: 0 auto 20px;
}
#imgupload--drop--area.hover {
  border-color: #00bcd4;
  background-color: #f0faff;
}

#imgupload--drop--area span {
  display: table-cell;
  vertical-align: middle;
}


/* input本体を非表示に */
#imgupload--image--input {
  display: none;
}

/* ラベルをボタン風にデザイン */
.imgupload--file--bt {
  display: block;
  cursor: pointer;
  color: #0097a7;
  border: #0097a7 solid 2px;
  padding: 2em 1em;
  border-radius: 10px;
  text-align: center;
  margin: 0 auto 20px;
  transition:
    background-color 0.5s,
    color 0.5s;
}
.imgupload--file--bt:hover {
  color: #fff;
  background-color: #0097a7;
}

#imgupload--preview {
  display: none;
  max-width: 100%;
  max-height: 300px;
  border: #ececec solid 1px;
  border-radius: 10px;
  margin: 0 auto;
  margin-bottom: 20px;
}

.imgupload--preview--frame {
  min-height: 300px;
  display: block;
  margin: 0 auto;
  border: #ccc solid 1px;
  background-color: #ececec;
  border-radius: 10px;
  padding: 35px 0 15px;
  margin-bottom: 20px;
}

/* imgupload css */


@media screen and (max-width: 768px) {
 #imgupload--drop--area {
    display: none;
  }
}


@media screen and (max-width: 1000px) {
 .photo--inner--area {
    width: 100%;
  }
}


/* ========================================= */
/* copy clipboard */
/* ========================================= */

.clipboard--success--msg {
    display: none;
    position: fixed;
    width: 300px;
    height: 40px;
    line-height: 40px;
    background-color: #29aba4;
    color: #fff;
    top: 50%;
    left: 0;
    right: 0;
    margin: auto;
    text-align: center;
    border-radius: 5px;
    opacity: 0.9;
}

.clipboard--list {
	position: relative;
	
}

.clipboard--list .clipboard--success--msg {
    display: none;
    position: absolute;
    width: 100%;
    height: 40px;
    line-height: 40px;
    background-color: #29aba4;
    color: #fff;
    top: 52%;
    left: 0;
    right: 0;
    margin: auto;
    text-align: center;
    border-radius: 5px;
    opacity: 0.9;
}






/* ========================================= */
/* like */
/* ========================================= */

.like--btn {
  position: relative;
}

.like--btn.btn.disabled,
.like--btn.btn:disabled,
fieldset:disabled .like--btn.btn {
    color: var(--bs-btn-disabled-color);
    pointer-events: none;
    background-color: var(--bs-btn-disabled-bg);
    border-color: var(--bs-btn-disabled-border-color);
    opacity: 1.0;
}

.like--btn img {
  display: none;
  position: absolute;
  top: 2px;
  left: 10px;
  width: 30px;
}

.like--btn img {
  animation:like_anime 0.5s linear infinite;
}

@keyframes like_anime {
  from {
    transform:scale(0.4);
  }
  to {
    transform:scale(1.4);
  }
}


/* ========================================= */
/* 送信時モーダル */
/* ========================================= */

.loading--chat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 120px;
  font-family: sans-serif;
  position: relative;
  overflow: hidden;
  width: 100px;
  margin: 0 auto;
}

.cat--img {
  width: 50px;
  animation:1s linear infinite cat_rotation;
}

@keyframes cat_rotation{
  0%{ transform:rotate(0);}
  100%{ transform:rotate(360deg); }
}

/* 肉球アニメーション */
.cat--wrap::before {
  content: "✨";
  position: absolute;
  font-size: 16px;
  animation: nikukyu 1s ease-in-out infinite;
  opacity: 0.7;
}
.cat--wrap::after {
  content: "🪐";
  position: absolute;
  font-size: 16px;
  animation: nikukyu 1s ease-in-out infinite;
  opacity: 0.7;
}

.cat--wrap::before {
  left: 0px;
  top: 60px;
  animation-delay: 0s;
}

.cat--wrap::after {
  right: 0px;
  top: 40px;
  animation-delay: 0.5s;
}

@keyframes nikukyu {
  0%   { transform: translateY(0) scale(1); opacity: 0.7; }
  50%  { transform: translateY(-20px) scale(1.2); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.7; }
}



/* ========================================= */
/* delete list */
/* ========================================= */


/* Recommendation
.recommendation--icon {
	width: 36px;
	padding: 3px;
	display: inline-block;
}

.recommendation--title {
	display: inline-block;
}
 */


/* badge
.badge{
	padding:6px 10px;
	border-radius:999px;
	font-size:13px;
	font-weight:700;
	color:#1f2937;
	background:#f3f4f6;
	border:1px solid #e5e7eb
}
.badge.pink{
	background:rgba(255,138,178,.18);
	border-color:rgba(255,138,178,.35)
}
.badge.sky{
	background:rgba(139,196,255,.18);
	border-color:rgba(139,196,255,.35);
}
.badge.sun{
	background:rgba(255,213,106,.20);
	border-color:rgba(255,213,106,.45);
}
 */
 
 
 
 
 
 
 
 
 
