.tgcp-page{font-family:inherit;max-width:1200px;margin:0 auto;padding:0 4px;}
.tgcp-page *{box-sizing:border-box;}

.tgcp-hero{
	margin:10px 0 28px;padding:34px 28px;border-radius:20px;
	background:linear-gradient(120deg,#1b1032,#5a1f3d 45%,#c0392b 100%);
	color:#fff;text-align:center;
	box-shadow:0 14px 30px rgba(90,20,40,0.28);
	position:relative;overflow:hidden;
}
.tgcp-hero::before{
	content:"";position:absolute;inset:0;
	background:radial-gradient(circle at 15% 20%,rgba(255,255,255,0.12),transparent 40%),
	           radial-gradient(circle at 85% 80%,rgba(255,215,120,0.16),transparent 45%);
	pointer-events:none;
}
.tgcp-hero-title{margin:0 0 8px;font-size:1.7em;font-weight:800;letter-spacing:.01em;position:relative;}
.tgcp-hero-sub{margin:0;font-size:0.95em;color:#f0d9c8;max-width:640px;margin-inline:auto;position:relative;}

.tgcp-loading,.tgcp-empty,.tgcp-error{text-align:center;color:#888;padding:40px 0;font-size:0.95em;}

.tgcp-tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 26px;}
.tgcp-tab{
	border:2px solid #e7c9a9;background:#fff;color:#6b4a35;
	padding:8px 18px;border-radius:999px;font-weight:700;font-size:0.85em;
	cursor:pointer;transition:all .15s ease;
}
.tgcp-tab .tgcp-tab-count{opacity:.65;font-weight:600;margin-left:4px;}
.tgcp-tab:hover{border-color:#c0392b;color:#c0392b;}
.tgcp-tab.is-active{background:linear-gradient(120deg,#c0392b,#e0705a);border-color:transparent;color:#fff;box-shadow:0 6px 14px rgba(192,57,43,0.3);}

.tgcp-section-title{
	font-size:1.05em;font-weight:800;color:#3a2418;margin:26px 2px 14px;
	display:flex;align-items:center;gap:8px;
}

.tgcp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px;margin-bottom:8px;}

.tgcp-card{
	background:#fff;border-radius:16px;border:1px solid #eee0d2;overflow:hidden;
	display:flex;flex-direction:column;
	box-shadow:0 4px 12px rgba(60,30,20,0.06);
	transition:transform .18s ease,box-shadow .18s ease;
}
.tgcp-card:hover{transform:translateY(-3px);box-shadow:0 14px 26px rgba(60,30,20,0.14);}
.tgcp-card.is-past{opacity:0.72;}

.tgcp-card-media{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,#2a1b3d,#4a2540);overflow:hidden;}
.tgcp-card-media img{width:100%;height:100%;object-fit:cover;display:block;}
.tgcp-card-media .tgcp-card-media-fallback{
	position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:2.4em;
}

.tgcp-badge-type{
	position:absolute;top:10px;left:10px;
	padding:3px 10px;border-radius:999px;font-size:0.68em;font-weight:800;letter-spacing:.02em;
	color:#fff;backdrop-filter:blur(2px);
}
.tgcp-badge-type.gacha{background:rgba(155,89,182,0.92);}
.tgcp-badge-type.mission{background:rgba(230,145,56,0.92);}
.tgcp-badge-type.event{background:rgba(192,57,43,0.92);}
.tgcp-badge-type.set{background:rgba(212,160,23,0.92);}

.tgcp-badge-status{
	position:absolute;top:10px;right:10px;
	padding:3px 10px;border-radius:999px;font-size:0.65em;font-weight:800;letter-spacing:.03em;
	color:#fff;text-transform:uppercase;
}
.tgcp-badge-status.live{background:#2ecc71;box-shadow:0 0 0 0 rgba(46,204,113,0.6);animation:tgcp-pulse 1.8s infinite;}
.tgcp-badge-status.soon{background:#3498db;}
.tgcp-badge-status.ended{background:#8a8a8a;}
@keyframes tgcp-pulse{
	0%{box-shadow:0 0 0 0 rgba(46,204,113,0.55);}
	70%{box-shadow:0 0 0 8px rgba(46,204,113,0);}
	100%{box-shadow:0 0 0 0 rgba(46,204,113,0);}
}

.tgcp-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1;}
.tgcp-card-title{margin:0;font-size:1em;font-weight:700;color:#2a1b1b;line-height:1.3;}
.tgcp-card-dates{font-size:0.78em;color:#96745c;font-weight:600;}
.tgcp-card-actions{margin-top:auto;display:flex;gap:8px;padding-top:6px;}

.tgcp-card-btn{
	flex:1;text-align:center;font-size:0.8em;font-weight:700;
	padding:8px 10px;border-radius:10px;text-decoration:none;
	background:#f6ede3;color:#8a5a3a;border:1px solid #ecd9c4;
	cursor:pointer;transition:background .15s ease;
}
.tgcp-card-btn:hover{background:#efe0cd;}
.tgcp-card-btn.primary{background:linear-gradient(120deg,#c0392b,#e0705a);color:#fff;border-color:transparent;}
.tgcp-card-btn.primary:hover{filter:brightness(1.06);}

.tgcp-modal-overlay{
	position:fixed;inset:0;background:rgba(20,10,10,0.55);z-index:9999;
	display:flex;align-items:center;justify-content:center;padding:16px;
}
.tgcp-modal-overlay[hidden]{display:none;}
.tgcp-modal{
	background:#fffaf5;border-radius:18px;max-width:760px;width:100%;max-height:86vh;overflow-y:auto;
	position:relative;box-shadow:0 30px 60px rgba(0,0,0,0.35);
}
.tgcp-modal-close{
	position:absolute;top:12px;right:14px;background:#00000022;border:none;border-radius:50%;
	width:32px;height:32px;font-size:1.2em;cursor:pointer;color:#3a2418;line-height:1;
}
.tgcp-modal-head{padding:20px 24px 4px;}
.tgcp-modal-head h2{margin:6px 0 4px;font-size:1.3em;color:#2a1b1b;}
.tgcp-modal-dates{font-size:0.85em;color:#96745c;font-weight:600;}
.tgcp-modal-body{padding:12px 24px 26px;font-size:0.92em;color:#3a2418;line-height:1.55;}
.tgcp-modal-body img{max-width:96px;height:auto;border-radius:8px;margin:4px 6px 4px 0;box-shadow:0 3px 8px rgba(0,0,0,0.15);}
.tgcp-modal-body table{width:100%;border-collapse:collapse;margin:12px 0;font-size:0.92em;}
.tgcp-modal-body th,.tgcp-modal-body td{padding:8px 10px;border-bottom:1px solid #eadfd0;text-align:left;}
.tgcp-modal-body th{background:#f6ede3;font-size:0.78em;text-transform:uppercase;letter-spacing:.03em;color:#8a5a3a;}
.tgcp-modal-body h2,.tgcp-modal-body h3{color:#2a1b1b;margin:16px 0 8px;}
.tgcp-modal-body p{margin:0 0 10px;}

@media (max-width:600px){
	.tgcp-hero{padding:26px 18px;}
	.tgcp-hero-title{font-size:1.3em;}
	.tgcp-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:420px){
	.tgcp-grid{grid-template-columns:1fr;}
}
