/* Paper Playful Enhancements */

/* ─── Scrollbar Layout Shift Fix ─────────────────────────────────────────── */
/* Always reserve scrollbar space so the layout never jumps when a scrollable
   article opens and the browser adds a scrollbar. */
html {
	overflow-y: scroll;
}

/* Make only the track area transparent — arrows and thumb keep default styling */
::-webkit-scrollbar-track {
	background: transparent;
}

/* ─── Paper Particles ─────────────────────────────────────────────────────── */

.paper-particle {
	position: fixed;
	pointer-events: none;
	z-index: 2;
	opacity: 0;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.18);
}

.paper-particle.type-rect {
	border-radius: 1px;
}

.paper-particle.type-square {
	border-radius: 3px;
}

@keyframes paperFloat {
	0%   { transform: translateY(108vh) translateX(0)   rotate(0deg);   opacity: 0; }
	8%   { opacity: 0.7; }
	50%  { transform: translateY(50vh)  translateX(30px) rotate(180deg); opacity: 0.5; }
	92%  { opacity: 0.3; }
	100% { transform: translateY(-8vh)  translateX(-20px) rotate(400deg); opacity: 0; }
}

/* ─── Header Crane SVG ────────────────────────────────────────────────────── */

/* Override the line-height centering trick from main.css so the SVG centers properly */
#header .logo {
	display: flex;
	align-items: center;
	justify-content: center;
}

#header .logo .crane-icon {
	width: 3rem;
	height: 3rem;
	fill: #ffffff;
	flex-shrink: 0;
	animation: craneFloat 3.5s ease-in-out infinite;
	filter: drop-shadow(0 0 8px rgba(255,255,255,0.45));
}

@keyframes craneFloat {
	0%,  100% { transform: translateY(0)    rotate(-4deg) scale(1);    }
	30%        { transform: translateY(-6px) rotate(3deg)  scale(1.04); }
	70%        { transform: translateY(-2px) rotate(-2deg) scale(0.97); }
}

/* ─── Nav Shimmer ─────────────────────────────────────────────────────────── */

#header nav ul li a {
	position: relative;
	overflow: hidden;
	transition: color 0.2s, text-shadow 0.2s;
}

#header nav ul li a::before {
	content: '';
	position: absolute;
	top: 0; left: -75%;
	width: 50%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
	transform: skewX(-20deg);
	pointer-events: none;
	/* no transition here — instant reset on mouse-out */
}

#header nav ul li a:hover::before {
	transition: left 0.6s ease;
	left: 130%;
}

#header nav ul li a:hover {
	text-shadow: 0 0 10px rgba(255,255,255,0.6);
}

/* ─── Article Paper Texture ───────────────────────────────────────────────── */

#main article {
	position: relative;
}

#main article::before {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: repeating-linear-gradient(
		-45deg,
		rgba(255,255,255,0.015) 0px,
		rgba(255,255,255,0.015) 1px,
		transparent 1px,
		transparent 8px
	);
	border-radius: inherit;
	z-index: 0;
}

#main article > * {
	position: relative;
	z-index: 1;
}

/* ─── Color Swatches ──────────────────────────────────────────────────────── */

.color-swatches {
	display: flex;
	gap: 0.5rem;
	margin: 0.75rem 0 1.5rem;
	align-items: center;
}

.color-swatches span {
	font-size: 0.7rem;
	letter-spacing: 0.1rem;
	text-transform: uppercase;
	opacity: 0.6;
	margin-right: 0.25rem;
}

.swatch {
	display: inline-block;
	width: 1rem;
	height: 1rem;
	border-radius: 50%;
	border: 1px solid rgba(255,255,255,0.4);
	box-shadow: 0 0 4px rgba(0,0,0,0.4);
	transition: transform 0.2s, box-shadow 0.2s;
	cursor: default;
}

.swatch:hover {
	transform: scale(1.3);
	box-shadow: 0 0 8px rgba(255,255,255,0.5);
}

.swatch-red    { background: #e53e3e; }
.swatch-blue   { background: #3182ce; }
.swatch-orange { background: #ed8936; }
.swatch-yellow { background: #ecc94b; }
.swatch-green  { background: #48bb78; }

/* ─── Handmade Badge ──────────────────────────────────────────────────────── */

.handmade-badge {
	display: inline-block;
	font-size: 0.55rem;
	letter-spacing: 0.15rem;
	text-transform: uppercase;
	background: rgba(255,255,255,0.1);
	border: 1px solid rgba(255,255,255,0.25);
	border-radius: 3px;
	padding: 0.1em 0.5em;
	margin-left: 0.6rem;
	vertical-align: middle;
	opacity: 0.75;
}

/* ─── Game Section ────────────────────────────────────────────────────────── */

.game-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 1.5rem;
}

.game-tab-btn {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	padding: 0.5rem 0.75rem;
	background: transparent;
	border: 1px solid rgba(255,255,255,0.4);
	color: rgba(255,255,255,0.7);
	border-radius: 4px;
	cursor: pointer;
	font-family: inherit;
	font-size: 0.75rem;
	letter-spacing: 0.15rem;
	text-transform: uppercase;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.game-tab-btn.active,
.game-tab-btn:hover {
	background: rgba(255,255,255,0.12);
	color: #ffffff;
	border-color: rgba(255,255,255,0.8);
}

.game-panel {
	display: none;
}

.game-panel.active {
	display: block;
}

/* ── Ddakji Game ─────────────────────── */

.ddakji-arena {
	text-align: center;
	padding: 1rem 0;
}

.ddakji-scoreboard {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1.25rem;
	font-size: 0.85rem;
	letter-spacing: 0.1rem;
}

.score-line {
	display: flex;
	gap: 2rem;
}

.score-you   { color: #63b3ed; }
.score-opp   { color: #fc8181; }
.score-round { color: rgba(255,255,255,0.5); font-size: 0.7rem; }

.ddakji-field {
	position: relative;
	width: 160px;
	height: 160px;
	margin: 0 auto 1.25rem;
	perspective: 600px;
}

.ddakji-tile {
	width: 100%;
	height: 100%;
	position: relative;
	transform-style: preserve-3d;
	transition: transform 0.5s ease;
}

.ddakji-tile.flip {
	transform: rotateY(180deg) rotateX(-20deg);
}

.ddakji-tile.shake {
	animation: tileShake 0.4s ease;
}

@keyframes tileShake {
	0%,100% { transform: translateX(0); }
	20%     { transform: translateX(-8px) rotate(-3deg); }
	40%     { transform: translateX(8px)  rotate(3deg); }
	60%     { transform: translateX(-5px) rotate(-2deg); }
	80%     { transform: translateX(5px)  rotate(2deg); }
}

.tile-face {
	position: absolute;
	inset: 0;
	border-radius: 6px;
	backface-visibility: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.65rem;
	letter-spacing: 0.12rem;
	font-weight: 600;
	text-transform: uppercase;
	box-shadow: 0 4px 16px rgba(0,0,0,0.5);
}

.tile-front {
	background: linear-gradient(135deg, #e53e3e 50%, #3182ce 50%);
}

.tile-back {
	background: linear-gradient(135deg, #3182ce 50%, #e53e3e 50%);
	transform: rotateY(180deg);
}

/* Diagonal fold lines on tile */
.tile-face::before,
.tile-face::after {
	content: '';
	position: absolute;
	background: rgba(255,255,255,0.15);
}

.tile-face::before {
	width: 100%; height: 2px;
	top: 50%;
	transform: rotate(45deg) scaleX(1.4);
}

.tile-face::after {
	width: 100%; height: 2px;
	top: 50%;
	transform: rotate(-45deg) scaleX(1.4);
}

/* Tile color variants (applied via JS) */
.tile-red-blue  .tile-front { background: linear-gradient(135deg, #e53e3e 50%, #3182ce 50%); }
.tile-orange    .tile-front { background: linear-gradient(135deg, #ed8936 50%, #ecc94b 50%); }
.tile-green     .tile-front { background: linear-gradient(135deg, #48bb78 50%, #2b6cb0 50%); }

.slam-area {
	margin: 0 auto 1rem;
}

.power-bar-wrap {
	width: 200px;
	height: 12px;
	background: rgba(255,255,255,0.1);
	border: 1px solid rgba(255,255,255,0.25);
	border-radius: 6px;
	margin: 0 auto 0.75rem;
	overflow: hidden;
}

.power-bar {
	height: 100%;
	width: 0%;
	border-radius: 6px;
	background: linear-gradient(90deg, #63b3ed, #e53e3e);
	/* No transition on base — instant reset when charging class is removed */
}

.power-bar.charging {
	transition: width 2s linear;
	width: 100%;
}

.slam-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	padding: 0.6rem 2rem;
	background: transparent;
	border: 1px solid rgba(255,255,255,0.6);
	color: #ffffff;
	border-radius: 4px;
	cursor: pointer;
	font-family: inherit;
	font-size: 0.8rem;
	letter-spacing: 0.2rem;
	text-transform: uppercase;
	transition: background 0.15s, transform 0.1s;
	user-select: none;
	touch-action: none;
}

.slam-btn:active {
	transform: scale(0.95);
}

.slam-btn.holding {
	background: rgba(255,255,255,0.12);
	border-color: #fff;
}

.slam-btn:disabled {
	opacity: 0.35;
	cursor: default;
}

.ddakji-result-msg {
	min-height: 1.5rem;
	font-size: 0.85rem;
	letter-spacing: 0.1rem;
	color: rgba(255,255,255,0.8);
	margin-bottom: 0.75rem;
	transition: opacity 0.3s;
}

.ddakji-result-msg.flipped { color: #68d391; }
.ddakji-result-msg.missed  { color: #fc8181; }

.color-picker-row {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 0.75rem;
}

.color-pick-btn {
	width: 1.2rem;
	height: 1.2rem;
	border-radius: 50%;
	border: 2px solid rgba(255,255,255,0.3);
	cursor: pointer;
	transition: transform 0.15s, border-color 0.15s;
	padding: 0;
}

.color-pick-btn:hover,
.color-pick-btn.selected {
	transform: scale(1.3);
	border-color: #ffffff;
}

.game-over-banner {
	text-align: center;
	padding: 1.5rem 0;
	display: none;
}

.game-over-banner h3 {
	font-size: 1.1rem;
	letter-spacing: 0.2rem;
	margin-bottom: 0.5rem;
}

.game-over-banner .final-score {
	font-size: 2rem;
	font-weight: 600;
	margin-bottom: 1rem;
}

.restart-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	padding: 0.5rem 1.5rem;
	background: transparent;
	border: 1px solid rgba(255,255,255,0.5);
	color: #ffffff;
	border-radius: 4px;
	cursor: pointer;
	font-family: inherit;
	font-size: 0.75rem;
	letter-spacing: 0.15rem;
	text-transform: uppercase;
	transition: background 0.2s;
}

.restart-btn:hover {
	background: rgba(255,255,255,0.1);
}

/* ── Fortune Teller ──────────────────── */

.fortune-teller-wrap {
	text-align: center;
}

.fortune-intro {
	font-size: 0.8rem;
	opacity: 0.7;
	margin-bottom: 1.25rem;
	letter-spacing: 0.05rem;
}

.fortune-teller {
	position: relative;
	width: 180px;
	height: 180px;
	margin: 0 auto 1.25rem;
}

.ft-flap {
	position: absolute;
	width: 0;
	height: 0;
	cursor: pointer;
	transition: filter 0.2s, opacity 0.2s;
}

/* Top flap */
.ft-flap-top {
	border-left:   90px solid transparent;
	border-right:  90px solid transparent;
	border-bottom: 90px solid #e53e3e;
	top: 0; left: 0;
}

/* Bottom flap */
.ft-flap-bottom {
	border-left:  90px solid transparent;
	border-right: 90px solid transparent;
	border-top:   90px solid #3182ce;
	bottom: 0; left: 0;
}

/* Left flap */
.ft-flap-left {
	border-top:    90px solid transparent;
	border-bottom: 90px solid transparent;
	border-right:  90px solid #48bb78;
	top: 0; left: 0;
}

/* Right flap */
.ft-flap-right {
	border-top:    90px solid transparent;
	border-bottom: 90px solid transparent;
	border-left:   90px solid #ecc94b;
	top: 0; right: 0;
}

.ft-flap:hover {
	filter: brightness(1.3);
}

.ft-flap.selected {
	filter: brightness(1.5) drop-shadow(0 0 6px rgba(255,255,255,0.6));
}

.ft-center {
	position: absolute;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	width: 70px;
	height: 70px;
	background: rgba(30,30,35,0.9);
	border: 1px solid rgba(255,255,255,0.3);
	border-radius: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	font-size: 0.6rem;
	letter-spacing: 0.08rem;
	text-transform: uppercase;
	color: rgba(255,255,255,0.7);
	pointer-events: none;
	text-align: center;
	padding: 0.25rem;
}

.fortune-numbers {
	display: flex;
	justify-content: center;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.ft-num-btn {
	width: 2.2rem;
	height: 2.2rem;
	border-radius: 50%;
	border: 1px solid rgba(255,255,255,0.4);
	background: rgba(255,255,255,0.07);
	color: #ffffff;
	cursor: pointer;
	font-family: inherit;
	font-size: 0.85rem;
	line-height: 1;
	transition: background 0.15s, transform 0.15s;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ft-num-btn:hover {
	background: rgba(255,255,255,0.18);
	transform: scale(1.1);
}

.ft-num-btn:disabled {
	opacity: 0.3;
	cursor: default;
	transform: none;
}

.fortune-result {
	min-height: 3rem;
	font-size: 0.85rem;
	font-style: italic;
	opacity: 0;
	transition: opacity 0.5s;
	padding: 0.75rem 1rem;
	border: 1px solid rgba(255,255,255,0.15);
	border-radius: 4px;
	background: rgba(255,255,255,0.05);
	margin-bottom: 0.75rem;
}

.fortune-result.visible {
	opacity: 1;
}

.ft-reset-btn {
	display: none;
	align-items: center;
	justify-content: center;
	line-height: 1;
	padding: 0.4rem 1.2rem;
	background: transparent;
	border: 1px solid rgba(255,255,255,0.4);
	color: rgba(255,255,255,0.7);
	border-radius: 4px;
	cursor: pointer;
	font-family: inherit;
	font-size: 0.7rem;
	letter-spacing: 0.12rem;
	text-transform: uppercase;
	transition: background 0.2s, color 0.2s;
}

.ft-reset-btn.visible {
	display: inline-flex;
}

.ft-reset-btn:hover {
	background: rgba(255,255,255,0.1);
	color: #ffffff;
}

.fortune-step-hint {
	font-size: 0.7rem;
	opacity: 0.55;
	letter-spacing: 0.08rem;
	margin-bottom: 0.5rem;
}

/* ─── Contact Section ─────────────────────────────────────────────────────── */

.contact-form {
	margin-top: 1rem;
}

.contact-form .field {
	margin-bottom: 1.25rem;
}

.contact-form label {
	display: block;
	font-size: 0.75rem;
	letter-spacing: 0.15rem;
	text-transform: uppercase;
	opacity: 0.7;
	margin-bottom: 0.4rem;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
	width: 100%;
	background: transparent;
	border: 1px solid rgba(255,255,255,0.35);
	color: #ffffff;
	padding: 0.6rem 0.9rem;
	border-radius: 4px;
	font-family: inherit;
	font-size: 0.9rem;
	transition: border-color 0.2s, box-shadow 0.2s;
	resize: vertical;
}

.contact-form input:focus,
.contact-form textarea:focus {
	outline: none;
	border-color: rgba(255,255,255,0.8);
	box-shadow: 0 0 0 1px rgba(255,255,255,0.3);
}

.contact-form textarea {
	min-height: 7rem;
}

.send-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	padding: 0.65rem 2rem;
	background: transparent;
	border: 1px solid rgba(255,255,255,0.6);
	color: #ffffff;
	border-radius: 4px;
	cursor: pointer;
	font-family: inherit;
	font-size: 0.8rem;
	letter-spacing: 0.2rem;
	text-transform: uppercase;
	transition: background 0.2s, border-color 0.2s;
}

.send-btn:hover {
	background: rgba(255,255,255,0.1);
	border-color: #ffffff;
}

.contact-note {
	font-size: 0.7rem;
	opacity: 0.5;
	margin-top: 0.75rem;
	font-style: italic;
}

/* ─── Paper Toss Game ─────────────────────────────────────────────────────── */

.toss-hud {
	display: flex;
	justify-content: space-between;
	font-size: 0.8rem;
	letter-spacing: 0.08rem;
	margin-bottom: 0.6rem;
	color: rgba(255,255,255,0.7);
}

.toss-arena {
	position: relative;
	width: 100%;
	height: 200px;
	background: rgba(255,255,255,0.03);
	border: 1px solid rgba(255,255,255,0.12);
	border-radius: 4px;
	cursor: crosshair;
	overflow: hidden;
	margin-bottom: 0.75rem;
	user-select: none;
}

.toss-bin {
	position: absolute;
	right: 15%;
	bottom: 0;
	width: 54px;
}

.bin-rim {
	width: 60px;
	height: 6px;
	background: rgba(255,255,255,0.65);
	border-radius: 3px;
	margin-left: -3px;
}

.bin-body {
	width: 54px;
	height: 58px;
	border: 2px solid rgba(255,255,255,0.4);
	border-top: none;
	border-radius: 0 0 8px 8px;
	background: rgba(255,255,255,0.05);
}

.toss-ball {
	position: absolute;
	left: 18px;
	bottom: 18px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.95), rgba(180,180,190,0.7));
	box-shadow: 0 2px 6px rgba(0,0,0,0.45);
	pointer-events: none;
}

.toss-msg {
	min-height: 1.4rem;
	text-align: center;
	font-size: 0.8rem;
	letter-spacing: 0.08rem;
	color: rgba(255,255,255,0.65);
	margin-bottom: 0.5rem;
	transition: color 0.2s;
}

.toss-msg.scored { color: #68d391; }
.toss-msg.missed { color: #fc8181; }

.toss-over {
	text-align: center;
	padding: 0.75rem 0;
}

.toss-over h3 {
	font-size: 1rem;
	letter-spacing: 0.2rem;
	margin-bottom: 0.4rem;
}

/* ─── Origami Memory Game ─────────────────────────────────────────────────── */

.memory-hud {
	display: flex;
	justify-content: space-between;
	font-size: 0.8rem;
	letter-spacing: 0.08rem;
	margin-bottom: 0.6rem;
	color: rgba(255,255,255,0.7);
}

.memory-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.4rem;
	margin-bottom: 0.75rem;
}

.memory-card {
	aspect-ratio: 1;
	cursor: pointer;
	perspective: 300px;
}

.memory-card-inner {
	width: 100%;
	height: 100%;
	position: relative;
	transform-style: preserve-3d;
	transition: transform 0.4s ease;
}

.memory-card.flipped .memory-card-inner,
.memory-card.matched .memory-card-inner {
	transform: rotateY(180deg);
}

.memory-card-front,
.memory-card-back {
	position: absolute;
	inset: 0;
	backface-visibility: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 4px;
	font-size: 1.5rem;
}

.memory-card-front {
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,255,255,0.18);
	background-image: repeating-linear-gradient(
		45deg,
		rgba(255,255,255,0.03) 0px,
		rgba(255,255,255,0.03) 1px,
		transparent 1px,
		transparent 6px
	);
	color: rgba(255,255,255,0.25);
	font-size: 0.9rem;
}

.memory-card-back {
	background: rgba(255,255,255,0.11);
	border: 1px solid rgba(255,255,255,0.28);
	transform: rotateY(180deg);
}

.memory-card.matched .memory-card-back {
	background: rgba(104,211,145,0.18);
	border-color: rgba(104,211,145,0.45);
	box-shadow: 0 0 10px rgba(104,211,145,0.25);
}

.memory-card:not(.flipped):not(.matched):hover .memory-card-inner {
	transform: translateY(-2px);
}

.memory-over {
	text-align: center;
	padding: 0.75rem 0;
}

.memory-over h3 {
	font-size: 1rem;
	letter-spacing: 0.2rem;
	margin-bottom: 0.4rem;
}

.memory-stats-el {
	font-size: 0.8rem;
	opacity: 0.65;
	margin-bottom: 0.75rem;
	letter-spacing: 0.05rem;
}

/* ─── Enhanced Contact Form ───────────────────────────────────────────────── */

.contact-form select {
	width: 100%;
	background: transparent;
	border: 1px solid rgba(255,255,255,0.35);
	color: #ffffff;
	padding: 0.6rem 2.5rem 0.6rem 0.9rem;
	border-radius: 4px;
	font-family: inherit;
	font-size: 0.9rem;
	transition: border-color 0.2s, box-shadow 0.2s;
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='rgba(255,255,255,0.5)' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.85rem center;
	background-size: 12px;
	-webkit-appearance: none;
	appearance: none;
}

.contact-form select:focus {
	outline: none;
	border-color: rgba(255,255,255,0.8);
	box-shadow: 0 0 0 1px rgba(255,255,255,0.3);
}

.contact-form select option {
	background: #1b1f22;
	color: #ffffff;
}

.colour-options {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 1rem;
	padding: 0.5rem 0;
}

.colour-opt {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 0.8rem;
	cursor: pointer;
	opacity: 0.8;
	transition: opacity 0.15s;
}

.colour-opt:hover { opacity: 1; }

.colour-opt input[type="radio"] {
	width: auto;
	height: auto;
	margin: 0;
	opacity: 1;
	position: static;
	float: none;
	cursor: pointer;
	accent-color: #ffffff;
}

.colour-opt .swatch {
	width: 0.85rem;
	height: 0.85rem;
}

.contact-form input[type="number"] {
	width: 5rem;
	background: transparent;
	border: 1px solid rgba(255,255,255,0.35);
	color: #ffffff;
	padding: 0.5rem 0.7rem;
	border-radius: 4px;
	font-family: inherit;
	font-size: 0.9rem;
}

.contact-form input[type="number"]:focus {
	outline: none;
	border-color: rgba(255,255,255,0.8);
	box-shadow: 0 0 0 1px rgba(255,255,255,0.3);
}

/* ─── Origami Tutorials ───────────────────────────────────────────────────── */

.tut-selector {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-bottom: 1rem;
}

.tut-sel-btn {
	flex: 1;
	min-width: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	padding: 0.4rem 0.6rem;
	background: transparent;
	border: 1px solid rgba(255,255,255,0.3);
	color: rgba(255,255,255,0.6);
	border-radius: 4px;
	cursor: pointer;
	font-family: inherit;
	font-size: 0.7rem;
	letter-spacing: 0.1rem;
	text-transform: uppercase;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
	white-space: nowrap;
}

.tut-sel-btn.active,
.tut-sel-btn:hover {
	background: rgba(255,255,255,0.1);
	color: #ffffff;
	border-color: rgba(255,255,255,0.7);
}

.tutorial-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.85rem;
}

.tut-step-label {
	font-size: 0.7rem;
	letter-spacing: 0.15rem;
	text-transform: uppercase;
	opacity: 0.55;
}

.tut-nav-btn {
	width: 2.1rem;
	height: 2.1rem;
	background: transparent;
	border: 1px solid rgba(255,255,255,0.3);
	color: #ffffff;
	border-radius: 4px;
	cursor: pointer;
	font-size: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	transition: background 0.15s, border-color 0.15s;
}

.tut-nav-btn:hover:not(:disabled) {
	background: rgba(255,255,255,0.1);
	border-color: rgba(255,255,255,0.7);
}

.tut-nav-btn:disabled {
	opacity: 0.2;
	cursor: default;
}

.tutorial-diagram {
	width: 100%;
	aspect-ratio: 2 / 1;
	background: rgba(255,255,255,0.03);
	border: 1px solid rgba(255,255,255,0.1);
	border-radius: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	margin-bottom: 0.85rem;
	transition: opacity 0.25s;
}

.tutorial-diagram svg {
	max-width: 90%;
	max-height: 90%;
}

.tutorial-text {
	margin-bottom: 0.75rem;
}

.tut-title {
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.05rem;
	margin-bottom: 0.3rem;
	color: rgba(255,255,255,0.95);
}

.tut-desc {
	font-size: 0.8rem;
	line-height: 1.65;
	color: rgba(255,255,255,0.6);
	margin: 0;
}

.tut-dots {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
}

.tut-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(255,255,255,0.2);
	border: none;
	cursor: pointer;
	padding: 0;
	transition: background 0.2s, transform 0.2s;
}

.tut-dot.active {
	background: rgba(255,255,255,0.8);
	transform: scale(1.3);
}

/* ─── Responsive ──────────────────────────────────────────────────────────── */

@media screen and (max-width: 736px) {
	.ddakji-field {
		width: 130px;
		height: 130px;
	}

	.fortune-teller {
		width: 150px;
		height: 150px;
	}

	.ft-flap-top    { border-left: 75px solid transparent; border-right: 75px solid transparent; border-bottom-width: 75px; }
	.ft-flap-bottom { border-left: 75px solid transparent; border-right: 75px solid transparent; border-top-width: 75px; }
	.ft-flap-left   { border-top: 75px solid transparent; border-bottom: 75px solid transparent; border-right-width: 75px; }
	.ft-flap-right  { border-top: 75px solid transparent; border-bottom: 75px solid transparent; border-left-width: 75px; }

	.ft-center { width: 58px; height: 58px; }

	.game-tabs { flex-direction: column; }
}
