Fox Forest Friends Theme Keycap Set
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;0,9..144,900;1,9..144,400&family=Inter:wght@400;50 0;600;700;800&display=swap'); .panda { --pd-terracotta: #c1714f; --pd-terracotta-d: #8f4f35; --pd-terracotta-s: #e0a585; --pd-sage: #8a9a76; --pd-sage-2: #b3c19a; --pd-cream: #f5ecd9; --pd-cream-2: #ede0c4; --pd-paper: #fbf6ea; --pd-mustard: #d8a850; --pd-mustard-d: #a9772f; --pd-brown: #5a3c2e; --pd-brown-deep: #3c2a20; --pd-ink: #2e231b; --pd-text: #4f4032; --pd-muted: #80715f; --pd-line: rgba(90,60,46,0.18); --pd-line-soft: rgba(90,60,46,0.10); --pd-shadow: 0 20px 52px -20px rgba(46,35,27,0.45); --pd-shadow-sm: 0 10px 26px -12px rgba(46,35,27,0.32); --pd-glow: 0 0 26px rgba(216,168,80,0.4); --pd-display: 'Fraunces', Georgia, 'Times New Roman', serif; --pd-body: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif; --pd-radius: 16px; --pd-radius-lg: 22px; --pd-maxw: 1280px; --pd-gap: clamp(14px, 2.2vw, 22px); --pd-section: clamp(44px, 7vw, 80px); font-family: var(--pd-body); color: var(--pd-ink); line-height: 1.7; font-size: 18px; max-width: var(--pd-maxw); margin: 0 auto; padding: 0 4px; text-align: center; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; box-sizing: border-box; } .panda *, .panda *::before, .panda *::after { box-sizing: border-box; } .panda p { margin: 0 0 1em; font-size: clamp(15px, 1.6vw, 17.5px); } .panda p:last-child { margin-bottom: 0; } .panda strong { font-weight: 700; color: var(--pd-ink); } .panda h1, .panda h2, .panda h3, .panda h4 { margin: 0; line-height: 1.18; } .panda__sheet { position: relative; background: radial-gradient(120% 80% at 50% -10%, rgba(216,168,80,0.10), transparent 55%), linear-gradient(180deg, #fbf6ea 0%, #f5ecd9 50%, #ede0c4 100%); border: 1px solid var(--pd-line); border-radius: var(--pd-radius-lg); overflow: hidden; box-shadow: var(--pd-shadow); } .panda__sheet::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.5; background-image: radial-gradient(rgba(90,60,46,0.05) 1px, transparent 1px), radial-gradient(rgba(138,154,118,0.05) 1px, transparent 1px); background-size: 22px 22px, 34px 34px; background-position: 0 0, 11px 17px; mix-blend-mode: multiply; } .panda__inner { position: relative; z-index: 1; padding: clamp(20px, 4.5vw, 52px); } .panda__hero { position: relative; text-align: center; padding: clamp(28px, 5vw, 54px) clamp(10px, 3vw, 36px) clamp(30px, 5vw, 54px); border-radius: var(--pd-radius); background: radial-gradient(85% 110% at 50% 0%, rgba(216,168,80,0.16), transparent 60%), linear-gradient(160deg, #5a3c2e 0%, #3c2a20 60%, #5a3c2e 100%); color: var(--pd-cream); overflow: hidden; border: 1px solid rgba(216,168,80,0.3); box-shadow: inset 0 0 60px rgba(0,0,0,0.4), var(--pd-shadow); } .panda__sparkle { position: absolute; inset: 0; pointer-events: none; background-image: radial-gradient(1.5px 1.5px at 12% 22%, rgba(217,189,126,0.85), transparent), radial-gradient(1.2px 1.2px at 80% 18%, rgba(217,189,126,0.65), transparent), radial-gradient(1.6px 1.6px at 34% 72%, rgba(217,189,126,0.8), transparent), radial-gradient(1.1px 1.1px at 66% 60%, rgba(217,189,126,0.55), transparent), radial-gradient(1.4px 1.4px at 90% 80%, rgba(217,189,126,0.65), transparent), radial-gradient(1.2px 1.2px at 22% 88%, rgba(217,189,126,0.55), transparent); animation: pd-twinkle 6s ease-in-out infinite alternate; } @keyframes pd-twinkle { 0% { opacity: 0.5; } 100% { opacity: 1; } } .panda__eyebrow { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 10px; font-family: var(--pd-body); font-weight: 700; letter-spacing: 0.26em; text-transform: uppercase; font-size: clamp(10px, 1.4vw, 12px); color: var(--pd-mustard); padding: 9px 18px; border: 1px solid rgba(216,168,80,0.45); border-radius: 999px; background: rgba(216,168,80,0.10); margin-bottom: 8px; transition: transform 0.3s ease, background 0.3s ease, box-shadow 0.3s ease; } .panda__eyebrow::before, .panda__eyebrow::after { content: "🍂"; font-size: 12px; } .panda__eyebrow:hover { transform: translateY(-2px) scale(1.03); background: rgba(216,168,80,0.18); box-shadow: var(--pd-glow); } .panda__title { position: relative; z-index: 2; font-family: var(--pd-display); font-weight: 900; line-height: 1.05; margin: clamp(28px, 4vw, 42px) 0 0; font-size: clamp(28px, 5.4vw, 54px); color: var(--pd-cream); text-shadow: 0 2px 0 rgba(0,0,0,0.3), 0 0 30px rgba(216,168,80,0.22); } .panda__title .panda__accent { font-style: italic; background: linear-gradient(180deg, #e6c583 0%, #d8a850 55%, #a9772f 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; } .panda__subtitle { position: relative; z-index: 2; text-align: center; font-size: clamp(15px, 2vw, 20px); color: rgba(245,236,217,0.85); max-width: 1200px; margin: clamp(16px, 3vw, 24px) auto 0; font-style: italic; } .panda__hero-rule { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 14px; margin: clamp(20px, 4vw, 30px) auto 0; max-width: 1200px; color: var(--pd-mustard); } .panda__hero-rule::before, .panda__hero-rule::after { content: ""; height: 1px; flex: 1; background: linear-gradient(90deg, transparent, var(--pd-mustard), transparent); } .panda__hero-rule span { font-size: 14px; letter-spacing: 0.2em; } .panda__badges { position: relative; z-index: 2; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: clamp(22px, 4vw, 30px); } .panda__badge { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: clamp(11px, 1.4vw, 13px); letter-spacing: 0.04em; color: var(--pd-cream); padding: 10px 16px; border-radius: 999px; border: 1px solid rgba(216,168,80,0.32); background: rgba(245,236,217,0.05); transition: transform 0.3s ease, background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease; } .panda__badge span:first-child { font-size: 15px; } .panda__badge:hover { transform: translateY(-3px); background: rgba(216,168,80,0.16); border-color: var(--pd-mustard); box-shadow: var(--pd-glow); } .panda__section { margin-top: var(--pd-section); } .panda__head { text-align: center; margin-bottom: clamp(26px, 4vw, 40px); } .panda__kicker { display: flex; align-items: center; justify-content: center; gap: 12px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase; font-size: clamp(10px, 1.4vw, 12px); color: var(--pd-mustard-d); margin-bottom: 12px; } .panda__kicker::before, .panda__kicker::after { content: "❧"; color: var(--pd-mustard); font-size: 13px; } .panda__h2 { font-family: var(--pd-display); font-weight: 900; text-align: center; font-size: clamp(25px, 4.4vw, 40px); line-height: 1.12; margin: 0 auto 12px; color: var(--pd-ink); max-width: 1200px; transition: text-shadow 0.4s ease; } .panda__h2:hover { text-shadow: 0 0 22px rgba(216,168,80,0.32); } .panda__h2 em { font-style: italic; color: var(--pd-terracotta); } .panda__lead { text-align: center; max-width: 1200px; margin: 0 auto; color: var(--pd-text); font-size: clamp(15px, 1.7vw, 18px); } .panda__divider { display: flex; align-items: center; justify-content: center; gap: 16px; margin: clamp(16px, 3vw, 22px) auto 0; max-width: 1200px; color: var(--pd-mustard); } .panda__divider::before, .panda__divider::after { content: ""; height: 1px; flex: 1; background: linear-gradient(90deg, transparent, var(--pd-mustard-d), transparent); } .panda__leaf { font-size: 14px; transition: transform 0.4s ease; } .panda__divider:hover .panda__leaf { transform: rotate(20deg) scale(1.2); } .panda__prose { max-width: 1200px; margin: 0 auto; text-align: center; } .panda__prose p { color: var(--pd-text); margin: 0 auto 1.1em; } .panda__prose p:last-child { margin-bottom: 0; } .panda__media-full { width: 100%; border-radius: var(--pd-radius); overflow: hidden; border: 1px solid var(--pd-line); box-shadow: var(--pd-shadow-sm); line-height: 0; background: var(--pd-paper); transition: transform 0.4s ease, box-shadow 0.4s ease; } .panda__media-full:hover { transform: translateY(-4px); box-shadow: var(--pd-shadow); } .panda__media-full img { width: 100%; display: block; height: auto; transition: transform 0.6s ease; } .panda__media-full:hover img { transform: scale(1.03); } .panda__hero-banner { aspect-ratio: 30 / 7; } .panda__hero-banner img { width: 100%; height: 100%; object-fit: cover; object-position: center 72%; display: block; transition: transform 0.6s ease; } @media (max-width: 600px) { .panda__hero-banner { aspect-ratio: 16 / 9; } } .panda__media-rect.panda__hero-banner { aspect-ratio: 30 / 7; } @media (max-width: 600px) { .panda__media-rect.panda__hero-banner { aspect-ratio: 16 / 9; } } .panda__grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(12px, 1.8vw, 18px); } .panda__grid-img { position: relative; overflow: hidden; border-radius: var(--pd-radius); border: 1px solid var(--pd-line); line-height: 0; background: var(--pd-paper); box-shadow: var(--pd-shadow-sm); aspect-ratio: 1 / 1; transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease; } .panda__grid-img:hover { transform: translateY(-5px); box-shadow: var(--pd-shadow); border-color: rgba(216,168,80,0.5); } .panda__grid-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease; } .panda__grid-img:hover img { transform: scale(1.08); } .panda__img-label { position: absolute; top: 12px; right: 12px; background: rgba(251,246,234,0.94); color: var(--pd-brown); padding: 6px 12px; border-radius: 8px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; box-shadow: 0 2px 8px rgba(46,35,27,0.18); z-index: 2; border: 1px solid rgba(216,168,80,0.35); } .panda__grid2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(12px, 1.8vw, 18px); } .panda__grid2 .panda__grid-img { aspect-ratio: 4 / 3; } .panda__media-rect { width: 100%; border-radius: var(--pd-radius); overflow: hidden; border: 1px solid var(--pd-line); box-shadow: var(--pd-shadow-sm); line-height: 0; aspect-ratio: 21 / 9; background: var(--pd-paper); transition: transform 0.4s ease, box-shadow 0.4s ease; } .panda__media-rect:hover { transform: translateY(-4px); box-shadow: var(--pd-shadow); } .panda__media-rect img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease; } .panda__media-rect:hover img { transform: scale(1.04); } .panda__split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(18px, 3vw, 32px); align-items: stretch; } .panda__split-img { position: relative; border-radius: var(--pd-radius); overflow: hidden; border: 1px solid var(--pd-line); box-shadow: var(--pd-shadow-sm); line-height: 0; background: var(--pd-paper); min-height: 320px; transition: transform 0.4s ease, box-shadow 0.4s ease; } .panda__split-img:hover { transform: translateY(-4px); box-shadow: var(--pd-shadow); } .panda__split-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease; } .panda__split-img:hover img { transform: scale(1.05); } .panda__split-text { text-align: left; background: var(--pd-paper); border: 1px solid var(--pd-line); border-radius: var(--pd-radius); padding: clamp(24px, 3.4vw, 38px); display: flex; flex-direction: column; justify-content: center; } .panda__split-text h3 { font-family: var(--pd-display); font-weight: 700; font-size: clamp(20px, 2.6vw, 27px); margin: 0 0 14px; color: var(--pd-ink); } .panda__split-list { list-style: none; margin: 0; padding: 0; } .panda__split-list li { position: relative; padding: 9px 0 9px 30px; font-size: clamp(14px, 1.6vw, 16px); color: var(--pd-text); border-bottom: 1px solid var(--pd-line-soft); } .panda__split-list li:last-child { border-bottom: none; } .panda__split-list li::before { content: "🐾"; position: absolute; left: 0; top: 8px; font-size: 15px; } .panda__trust { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: clamp(24px, 3vw, 32px); } .panda__trust-item { display: flex; align-items: center; gap: 14px; padding: 16px 18px; background: var(--pd-paper); border: 1px solid var(--pd-line); border-radius: var(--pd-radius); text-align: left; flex: 1 1 220px; max-width: 320px; transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease; } .panda__trust-item:hover { transform: translateY(-4px); box-shadow: var(--pd-shadow-sm); border-color: rgba(216,168,80,0.5); } .panda__trust-ic { width: 44px; height: 44px; flex: none; border-radius: 12px; display: grid; place-items: center; font-size: 20px; background: linear-gradient(135deg, rgba(90,60,46,0.10), rgba(216,168,80,0.10)); border: 1px solid var(--pd-line); transition: transform 0.35s ease; } .panda__trust-item:hover .panda__trust-ic { transform: scale(1.12) rotate(-5deg); } .panda__trust-t { font-weight: 700; font-size: 14.5px; color: var(--pd-ink); } .panda__trust-s { font-size: 12.5px; color: var(--pd-muted); } .panda__features { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pd-gap); } .panda__feature { position: relative; text-align: left; background: var(--pd-paper); border: 1px solid var(--pd-line); border-radius: var(--pd-radius); padding: clamp(20px, 3vw, 28px); overflow: hidden; flex: 1 1 250px; max-width: 340px; transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease; } .panda__feature::after { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--pd-sage), var(--pd-mustard), var(--pd-terracotta)); opacity: 0; transition: opacity 0.35s ease; } .panda__feature:hover { transform: translateY(-6px); box-shadow: var(--pd-shadow-sm); border-color: rgba(216,168,80,0.5); } .panda__feature:hover::after { opacity: 1; } .panda__feature-icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 14px; font-size: 24px; margin-bottom: 16px; background: linear-gradient(145deg, #5a3c2e, #3c2a20); border: 1px solid rgba(216,168,80,0.35); box-shadow: inset 0 0 16px rgba(216,168,80,0.15); transition: transform 0.4s ease, box-shadow 0.4s ease; } .panda__feature:hover .panda__feature-icon { transform: rotate(-6deg) scale(1.08); box-shadow: inset 0 0 16px rgba(216,168,80,0.28), var(--pd-glow); } .panda__feature h3 { font-family: var(--pd-display); font-weight: 700; font-size: clamp(17px, 2vw, 20px); margin: 0 0 8px; color: var(--pd-ink); } .panda__feature p { margin: 0; font-size: clamp(14px, 1.5vw, 15.5px); color: var(--pd-muted); line-height: 1.65; } .panda__spotlight { position: relative; text-align: center; border-radius: var(--pd-radius-lg); overflow: hidden; padding: clamp(30px, 5vw, 58px); background: radial-gradient(80% 120% at 50% 0%, rgba(216,168,80,0.14), transparent 55%), linear-gradient(155deg, #5a3c2e, #3c2a20); color: var(--pd-cream); border: 1px solid rgba(216,168,80,0.28); box-shadow: var(--pd-shadow); } .panda__spotlight .panda__kicker { color: var(--pd-mustard); } .panda__spotlight h2 { font-family: var(--pd-display); font-weight: 900; font-size: clamp(23px, 4vw, 38px); margin: 0 auto 14px; color: var(--pd-cream); max-width: 1200px; } .panda__spotlight h2 em { font-style: italic; color: var(--pd-mustard); } .panda__spotlight > p { max-width: 1200px; color: rgba(245,236,217,0.85); margin: 0 auto; } .panda__spec-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: clamp(26px, 3.5vw, 36px); } .panda__spec { border: 1px solid rgba(216,168,80,0.26); border-radius: 14px; padding: 18px 18px 16px; background: rgba(245,236,217,0.04); flex: 1 1 190px; max-width: 260px; transition: background 0.3s ease, transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease; } .panda__spec:hover { background: rgba(216,168,80,0.12); transform: translateY(-4px); border-color: var(--pd-mustard); box-shadow: var(--pd-glow); } .panda__spec-k { font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; font-size: 10.5px; color: var(--pd-mustard); margin-bottom: 6px; } .panda__spec-v { font-size: clamp(15px, 1.8vw, 18px); color: var(--pd-cream); font-weight: 600; font-family: var(--pd-display); } .panda__variants { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pd-gap); } .panda__variant { position: relative; text-align: center; background: var(--pd-paper); border: 1px solid var(--pd-line); border-radius: var(--pd-radius); padding: clamp(26px, 3.5vw, 38px) clamp(18px, 3vw, 28px); overflow: hidden; flex: 1 1 260px; max-width: 360px; transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease; } .panda__variant::after { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--pd-mustard-d), var(--pd-mustard), var(--pd-mustard-d)); } .panda__variant:hover { transform: translateY(-7px); box-shadow: var(--pd-shadow-sm); border-color: rgba(216,168,80,0.55); } .panda__variant-num { font-family: var(--pd-display); font-weight: 900; font-size: clamp(34px, 4.4vw, 46px); line-height: 1; color: var(--pd-terracotta); margin-bottom: 4px; transition: transform 0.4s ease; } .panda__variant:hover .panda__variant-num { transform: scale(1.08); } .panda__variant-key { font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; font-size: 12px; color: var(--pd-mustard-d); margin-bottom: 14px; } .panda__variant h3 { font-family: var(--pd-display); font-weight: 700; font-size: clamp(18px, 2.2vw, 22px); margin: 0 0 8px; color: var(--pd-ink); } .panda__variant p { font-size: 14.5px; color: var(--pd-muted); margin: 0; line-height: 1.6; } .panda__table-wrap { max-width: 1200px; margin: 0 auto; border: 1px solid var(--pd-line); border-radius: var(--pd-radius); overflow: hidden; background: var(--pd-paper); transition: transform 0.3s ease, box-shadow 0.3s ease; } .panda__table-wrap:hover { transform: translateY(-2px); box-shadow: var(--pd-shadow-sm); } .panda__table { width: 100%; border-collapse: collapse; text-align: left; font-size: clamp(14px, 1.7vw, 16.5px); } .panda__table tr { transition: background 0.25s ease; } .panda__table tr:hover { background: rgba(216,168,80,0.10); } .panda__table tr + tr { border-top: 1px solid var(--pd-line-soft); } .panda__table th, .panda__table td { padding: 15px 22px; vertical-align: top; } .panda__table th { width: 38%; font-family: var(--pd-display); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; font-size: 0.84em; color: var(--pd-sage); background: rgba(138,154,118,0.08); } .panda__table td { color: var(--pd-ink); font-weight: 600; } .panda__alert { max-width: 1200px; margin: clamp(20px, 3vw, 28px) auto 0; display: flex; align-items: flex-start; gap: 14px; text-align: left; padding: 18px 22px; border-radius: var(--pd-radius); border: 1px solid rgba(193,113,79,0.30); background: rgba(193,113,79,0.07); color: var(--pd-terracotta-d); font-size: 15px; font-weight: 500; transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease; } .panda__alert:hover { transform: translateY(-3px); box-shadow: var(--pd-shadow-sm); border-color: rgba(193,113,79,0.5); } .panda__alert-ic { font-size: 20px; flex: none; } .panda__care { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pd-gap); text-align: left; } .panda__care-card { background: var(--pd-paper); border: 1px solid var(--pd-line); border-radius: var(--pd-radius); padding: clamp(20px, 3vw, 26px); flex: 1 1 230px; max-width: 300px; transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease; } .panda__care-card:hover { transform: translateY(-5px); box-shadow: var(--pd-shadow-sm); border-color: rgba(216,168,80,0.55); } .panda__care-num { font-family: var(--pd-display); font-weight: 900; font-size: 28px; color: var(--pd-mustard); line-height: 1; margin-bottom: 10px; transition: transform 0.35s ease; } .panda__care-card:hover .panda__care-num { transform: scale(1.12); } .panda__care-card h4 { font-family: var(--pd-display); font-weight: 700; font-size: 16.5px; margin: 0 0 7px; color: var(--pd-ink); } .panda__care-card p { margin: 0; font-size: 14.5px; color: var(--pd-muted); line-height: 1.65; } .panda__stats { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pd-gap); text-align: center; } .panda__stat { padding: clamp(22px, 3vw, 30px) 14px; border: 1px solid var(--pd-line); border-radius: var(--pd-radius); background: var(--pd-paper); flex: 1 1 180px; max-width: 260px; transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease; } .panda__stat:hover { transform: translateY(-5px); box-shadow: var(--pd-shadow-sm); border-color: rgba(216,168,80,0.55); } .panda__stat-num { font-family: var(--pd-display); font-weight: 900; font-size: clamp(30px, 4.2vw, 44px); background: linear-gradient(180deg, #e6c583, #a9772f); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; line-height: 1; margin-bottom: 8px; } .panda__stat-label { font-weight: 700; font-size: 13.5px; color: var(--pd-ink); text-transform: uppercase; letter-spacing: 0.06em; } .panda__stat--terracotta { background: var(--pd-terracotta); border-color: var(--pd-terracotta-d); } .panda__stat--terracotta:hover { background: var(--pd-terracotta); border-color: var(--pd-terracotta-d); } .panda__stat--terracotta .panda__stat-num { background: none; -webkit-text-fill-color: var(--pd-cream); color: var(--pd-cream); } .panda__stat--terracotta .panda__stat-label { color: var(--pd-cream); } .panda__stat--sage { background: var(--pd-sage); border-color: #6f7d5c; } .panda__stat--sage:hover { background: var(--pd-sage); border-color: #6f7d5c; } .panda__stat--sage .panda__stat-num { background: none; -webkit-text-fill-color: var(--pd-ink); color: var(--pd-ink); } .panda__stat--sage .panda__stat-label { color: var(--pd-ink); } .panda__stat--cream { background: var(--pd-cream-2); border-color: rgba(90,60,46,0.22); } .panda__stat--cream:hover { background: var(--pd-cream-2); border-color: rgba(90,60,46,0.22); } .panda__stat--cream .panda__stat-num { background: none; -webkit-text-fill-color: var(--pd-ink); color: var(--pd-ink); } .panda__stat--cream .panda__stat-label { color: var(--pd-ink); } .panda__stat--mustard { background: var(--pd-mustard); border-color: var(--pd-mustard-d); } .panda__stat--mustard:hover { background: var(--pd-mustard); border-color: var(--pd-mustard-d); } .panda__stat--mustard .panda__stat-num { background: none; -webkit-text-fill-color: var(--pd-brown-deep); color: var(--pd-brown-deep); } .panda__stat--mustard .panda__stat-label { color: var(--pd-brown-deep); } .panda__faq { max-width: 1200px; margin: 0 auto; text-align: left; } .panda__faq details { border: 1px solid var(--pd-line); border-radius: 14px; background: var(--pd-paper); margin-bottom: 12px; overflow: hidden; transition: border-color 0.3s ease, box-shadow 0.3s ease; } .panda__faq details:hover { border-color: rgba(216,168,80,0.5); box-shadow: var(--pd-shadow-sm); } .panda__faq details[open] { border-color: rgba(216,168,80,0.55); box-shadow: var(--pd-shadow-sm); } .panda__faq summary { list-style: none; cursor: pointer; padding: 18px 22px; font-family: var(--pd-display); font-weight: 700; font-size: clamp(15px, 1.8vw, 17px); color: var(--pd-ink); display: flex; align-items: center; justify-content: space-between; gap: 14px; transition: color 0.25s ease; } .panda__faq summary:hover { color: var(--pd-terracotta); } .panda__faq summary::-webkit-details-marker { display: none; } .panda__faq summary::after { content: "+"; font-family: var(--pd-display); font-weight: 700; font-size: 22px; color: var(--pd-mustard); transition: transform 0.3s ease; line-height: 1; } .panda__faq details[open] summary::after { transform: rotate(45deg); } .panda__faq-body { padding: 0 22px 20px; color: var(--pd-muted); font-size: 15.5px; line-height: 1.7; } .panda__gift { position: relative; text-align: center; border-radius: var(--pd-radius-lg); overflow: hidden; padding: clamp(30px, 5vw, 52px) clamp(20px, 4vw, 40px); background: linear-gradient(160deg, #fbf6ea, #ede0c4); border: 1px solid rgba(216,168,80,0.4); box-shadow: var(--pd-shadow-sm); } .panda__gift-ic { font-size: 40px; margin-bottom: 12px; display: inline-block; transition: transform 0.4s ease; } .panda__gift:hover .panda__gift-ic { transform: scale(1.14) rotate(-8deg); } .panda__gift h2 { font-family: var(--pd-display); font-weight: 900; font-size: clamp(23px, 4vw, 36px); color: var(--pd-ink); margin: 0 0 12px; } .panda__gift p { max-width: 1200px; margin: 0 auto; color: var(--pd-text); font-size: clamp(15px, 1.8vw, 18px); } .panda__cta { position: relative; text-align: center; border-radius: var(--pd-radius-lg); overflow: hidden; padding: clamp(36px, 6vw, 64px) clamp(20px, 4vw, 40px); background: radial-gradient(80% 110% at 50% 0%, rgba(216,168,80,0.18), transparent 55%), linear-gradient(155deg, #5a3c2e, #3c2a20); color: var(--pd-cream); border: 1px solid rgba(216,168,80,0.3); box-shadow: var(--pd-shadow); } .panda__cta .panda__sparkle { opacity: 0.7; } .panda__cta h2 { position: relative; z-index: 2; font-family: var(--pd-display); font-weight: 900; font-size: clamp(25px, 5vw, 44px); margin: 0 0 14px; color: var(--pd-cream); text-shadow: 0 0 26px rgba(216,168,80,0.3); } .panda__cta h2 em { font-style: italic; color: var(--pd-mustard); } .panda__cta p { position: relative; z-index: 2; max-width: 1200px; margin: 0 auto; color: rgba(245,236,217,0.85); font-size: clamp(15px, 2vw, 19px); font-style: italic; } .panda__cta-seal { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 10px; margin-top: clamp(22px, 3.5vw, 30px); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; font-size: clamp(12px, 1.6vw, 14px); color: var(--pd-mustard); padding: 14px 28px; border: 1px solid rgba(216,168,80,0.45); border-radius: 999px; background: rgba(216,168,80,0.10); cursor: pointer; text-decoration: none; transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease, color 0.3s ease; } .panda__cta-seal:hover { background: rgba(216,168,80,0.2); border-color: var(--pd-mustard); transform: translateY(-3px) scale(1.02); box-shadow: 0 12px 30px -12px rgba(216,168,80,0.6); color: var(--pd-cream); } .panda__cta-seal:active { transform: translateY(-1px) scale(0.99); } .panda__panels { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pd-gap); text-align: left; } .panda__panel { background: var(--pd-paper); border: 1px solid var(--pd-line); border-radius: var(--pd-radius); padding: clamp(24px, 3.4vw, 34px); flex: 1 1 260px; max-width: 420px; transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease; } .panda__panel:hover { transform: translateY(-5px); box-shadow: var(--pd-shadow-sm); border-color: rgba(216,168,80,0.55); } .panda__panel-ic { font-size: 32px; margin-bottom: 12px; display: inline-block; transition: transform 0.4s ease; } .panda__panel:hover .panda__panel-ic { transform: scale(1.12) rotate(-5deg); } .panda__panel h3 { font-family: var(--pd-display); font-weight: 700; font-size: clamp(18px, 2.2vw, 22px); margin: 0 0 10px; color: var(--pd-ink); } .panda__panel p { margin: 0; color: var(--pd-muted); font-size: 15.5px; line-height: 1.7; } .panda__palette { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pd-gap); } .panda__swatch { border-radius: var(--pd-radius); overflow: hidden; border: 1px solid var(--pd-line); background: var(--pd-paper); flex: 1 1 150px; max-width: 220px; transition: transform 0.35s ease, box-shadow 0.35s ease; } .panda__swatch:hover { transform: translateY(-5px); box-shadow: var(--pd-shadow-sm); } .panda__swatch-chip { height: 80px; transition: transform 0.4s ease; } .panda__swatch:hover .panda__swatch-chip { transform: scale(1.04); } .panda__swatch-chip--terracotta { background: linear-gradient(135deg, #d4906c, #8f4f35); } .panda__swatch-chip--cream { background: linear-gradient(135deg, #f5ecd9, #e0d0a8); } .panda__swatch-chip--sage { background: linear-gradient(135deg, #b3c19a, #6f7d5c); } .panda__swatch-chip--mustard { background: linear-gradient(135deg, #e6c583, #a9772f); } .panda__swatch-body { padding: 14px 16px; text-align: center; } .panda__swatch-body h4 { font-family: var(--pd-display); font-weight: 700; font-size: 15px; color: var(--pd-ink); margin: 0 0 3px; } .panda__swatch-body p { font-size: 12.5px; color: var(--pd-muted); margin: 0; } .panda__tips { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pd-gap); text-align: left; } .panda__tip { background: var(--pd-paper); border: 1px solid var(--pd-line); border-radius: var(--pd-radius); padding: clamp(20px, 3vw, 28px); flex: 1 1 230px; max-width: 320px; transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease; } .panda__tip:hover { transform: translateY(-5px); box-shadow: var(--pd-shadow-sm); border-color: rgba(216,168,80,0.55); } .panda__tip-ic { font-size: 28px; display: inline-block; margin-bottom: 12px; transition: transform 0.4s ease; } .panda__tip:hover .panda__tip-ic { transform: scale(1.15) rotate(-5deg); } .panda__tip h4 { font-family: var(--pd-display); font-weight: 700; font-size: 16.5px; margin: 0 0 7px; color: var(--pd-ink); } .panda__tip p { margin: 0; font-size: 14.5px; color: var(--pd-muted); line-height: 1.65; } .panda__promise { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pd-gap); text-align: left; } .panda__promise-card { background: var(--pd-paper); border: 1px solid var(--pd-line); border-radius: var(--pd-radius); padding: clamp(22px, 3vw, 30px); flex: 1 1 220px; max-width: 300px; transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease; } .panda__promise-card:hover { transform: translateY(-5px); box-shadow: var(--pd-shadow-sm); border-color: rgba(216,168,80,0.55); } .panda__promise-ic { font-size: 28px; display: inline-block; margin-bottom: 12px; transition: transform 0.4s ease; } .panda__promise-card:hover .panda__promise-ic { transform: scale(1.14) rotate(-6deg); } .panda__promise-card h4 { font-family: var(--pd-display); font-weight: 700; font-size: 16.5px; margin: 0 0 8px; color: var(--pd-ink); } .panda__promise-card p { margin: 0; font-size: 14.5px; color: var(--pd-muted); line-height: 1.65; } .panda__steps { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pd-gap); text-align: left; } .panda__step { background: var(--pd-paper); border: 1px solid var(--pd-line); border-radius: var(--pd-radius); padding: clamp(22px, 3vw, 28px); flex: 1 1 220px; max-width: 300px; transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease; } .panda__step:hover { transform: translateY(-5px); box-shadow: var(--pd-shadow-sm); border-color: rgba(216,168,80,0.55); } .panda__step-num { font-family: var(--pd-display); font-weight: 900; font-size: 30px; color: var(--pd-mustard); line-height: 1; margin-bottom: 12px; transition: transform 0.35s ease; } .panda__step:hover .panda__step-num { transform: scale(1.12); } .panda__step h4 { font-family: var(--pd-display); font-weight: 700; font-size: 16.5px; margin: 0 0 7px; color: var(--pd-ink); } .panda__step p { margin: 0; font-size: 14.5px; color: var(--pd-muted); line-height: 1.65; } .panda__inbox { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; } .panda__inbox-item { background: var(--pd-paper); border: 1px solid var(--pd-line); border-radius: var(--pd-radius); padding: 20px 14px; text-align: center; font-size: 13.5px; color: var(--pd-muted); line-height: 1.5; flex: 1 1 160px; max-width: 220px; transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease; } .panda__inbox-item:hover { transform: translateY(-4px); box-shadow: var(--pd-shadow-sm); border-color: rgba(216,168,80,0.55); } .panda__inbox-num { font-family: var(--pd-display); font-weight: 900; font-size: 24px; color: var(--pd-terracotta); display: block; margin-bottom: 4px; } .panda__inbox-t { font-weight: 700; color: var(--pd-ink); } @media (max-width: 900px) { .panda { font-size: 17px; } .panda__split { grid-template-columns: 1fr; } .panda__split-img { min-height: 280px; aspect-ratio: 4 / 3; } } @media (max-width: 600px) { .panda { padding: 0; font-size: 16.5px; } .panda__inner { padding: 18px 14px; } .panda__grid3, .panda__grid2 { grid-template-columns: 1fr; } .panda__features > *, .panda__variants > *, .panda__care > *, .panda__stats > *, .panda__trust > *, .panda__panels > *, .panda__palette > *, .panda__tips > *, .panda__promise > *, .panda__steps > *, .panda__inbox > *, .panda__spec-grid > * { flex-basis: 100%; max-width: 100%; } .panda__eyebrow { letter-spacing: 0.18em; } .panda__title { font-size: clamp(24px, 8vw, 34px); } .panda__media-rect { aspect-ratio: 16 / 10; } .panda__grid-img { aspect-ratio: 4 / 3; } } @keyframes pd-add-pulse { 0% { box-shadow: 0 0 0 0 rgba(216,168,80,0.65); } 70% { box-shadow: 0 0 0 16px rgba(216,168,80,0); } 100% { box-shadow: 0 0 0 0 rgba(216,168,80,0); } } .pd-add-pulse { animation: pd-add-pulse 0.9s ease-out 2; } @media (prefers-reduced-motion: reduce) { .panda * { animation: none !important; transition: none !important; } } Artisan Collection Red Fox & Forest FriendsKeycap Set Wander into a cozy autumn woodland. SO profile sculpting, a full 139-piece set, and a storybook cast of red foxes and forest critters — a keyboard that feels like a stroll through fallen leaves. 🍂 🐾 🍂 🦊Red Fox Theme 🔢139 Keys ⌨️SO Profile 🧩ANSI & ISO The Story A Cozy Walk Through the Autumn Forest 🍁 Bring a little woodland warmth to your desk. The Red Fox & Forest Friends keycap set wraps your board in soft sage greens, toasty terracotta and warm cream tones, scattered with red foxes, hedgehogs and falling leaves that turn every keystroke into a quiet moment in the forest. Sculpted in a comfortable SO profile, this set ships as a complete 139-piece kit built to cover a wide range of boards — including Alice layout ergonomic keyboards and boards with a 7u spacebar. Both ANSI and ISO layouts are supported, so almost any mechanical keyboard on the market can wear the theme. Whether you're typing through a late-night project or settling in for a long session, every glance at your board becomes a tiny escape into a storybook autumn forest. 🚚 Worldwide Shipping Carefully packed & tracked 🔒 Secure Checkout Safe, encrypted payment ↩️ Easy Returns Hassle-free support First Look Crafted Down to the Last Leaf 🍁 Full Set Detail Novelties Why You'll Love It Key Features 🍁 🦊 Red Fox Artistry Red foxes, hedgehogs and forest foliage in a warm autumn palette that turns your board into a storybook scene. ⌨️ SO Profile Sculpt A comfortable, gently rounded SO profile shape that supports a natural typing posture for long sessions. 🔢 Full 139-Key Set A complete 139-piece kit with generous coverage for modifiers, function rows and novelty accents. 🧩 ANSI & ISO Ready Built to support both ANSI and ISO layouts, so the set works across a wide range of keyboard standards. 🦾 Alice Layout Friendly Includes the extra keys needed to dress up ergonomic Alice-style split keyboards. ⎵ 7u Spacebar Coverage Comes with the long spacebar option, so boards using a 7u spacebar are fully covered too. Lifestyle On Desk Built for Everyday Use Sculpted SO Profile, Full Coverage This set is built around a smooth, gently sculpted SO profile that feels comfortable under the fingers during long typing or gaming sessions. With 139 keys in the box, the set is sized for real coverage — extra modifiers, function-row caps and the novelty accents that bring the red fox theme to life, all included rather than sold piecemeal. Profile SO Profile Key Count 139 Keys Layout ANSI & ISO Spacebar 7u Compatible Ergonomic Alice Friendly Set Coverage Designed to Fit Your Board 🍁 Layout Broad Layout Compatibility 60% & 65% compact layouts 75% compact full-function 80% TKL (tenkeyless) 96% & full-size boards Alice layout ergonomic keyboards 7u spacebar & ANSI / ISO boards Not sure if your board is covered? Send us your keyboard model and we'll happily confirm fit before you order. The Set One Complete 139-Key Kit No piecing together extras — everything you need is already in the box. 🍁 139 Keys Full Coverage Set Alphas, modifiers, function row and themed novelties together in one complete kit for broad layout support. 2 Layouts ANSI & ISO Built to support both major layout standards, with the extra keys Alice and 7u-spacebar boards need too. The Details Full Specifications 🍁 Model Red Fox & Forest Friends Keycap Set Profile SO Profile Key Count 139 Pieces Layout Support ANSI & ISO Ergonomic Boards Alice Layout Compatible Spacebar Support 7u Spacebar Compatible Stem Type MX-Style (cross stem) Compatibility Most mechanical keyboards on the market Product Type Keycap Set (for mechanical keyboards) Compatible Switches Cherry MX, Gateron, Kailh & most MX clones ⚠️ Keycaps only. This listing includes the keycap set only. The keyboard, switches and other items shown in the photos are for display and are not included. Works only with MX-style mechanical switches — not membrane, scissor, or low-profile keyboards. More Views Every Angle of the Forest 🍁 Display Close-Up Angle View Easy Setup Install in Four Steps No tools beyond a standard keycap puller. Done in minutes. 🍁 01 Pull the Old Caps Slide a wire keycap puller over each cap and lift straight up to remove your existing keycaps. 02 Match the Layout Lay out the new set to match your ANSI, ISO, Alice or 7u-spacebar board before mounting. 03 Press Into Place Align each cap over its switch stem and press down gently until it clicks securely into position. 04 Enter the Forest Give your board a once-over, then enjoy a desk that feels like a cozy autumn woodland escape. Package Contents What's in the Box 🍁 139×Keycap SetFull coverage kit 1×Keycap PullerFor easy installation 2Layout SupportANSI & ISO ready ✓Protective PackagingDamage-free delivery Keep the Magic Alive Care & Keeping 🍁 01 Gentle Cleaning Wipe with a soft, slightly damp cloth for everyday cleaning — skip solvents and abrasive cleaners. For a deeper clean, remove the caps and rinse gently in warm soapy water. 02 Dry Fully Always let keycaps dry completely before remounting them on your switches to protect your board. 03 Use a Puller Remove caps with a wire keycap puller to avoid scratching the artwork or bending the stems. 04 Keep Out of Direct Sun Store and use your board away from prolonged direct sunlight to keep the autumn tones vivid for years. Made For Who Will Love This Set If any of these sound like you, this set belongs on your desk. 🍁 🦊Red Fox Fans Anyone who can't resist a good red fox and wants that charm sitting right on their desk. ⌨️Keyboard Enthusiasts Collectors who appreciate a comfortable SO profile and a generously sized, full-coverage 139-key set. 🦾Alice & Ergo Builders Owners of Alice-layout or 7u-spacebar boards looking for a themed set sized to actually fit. 🎁Gift Givers A thoughtful, characterful present for the keyboard fan or animal lover in your life. Straight From the Forest Why Fans Love It It's not just novelty art — every key shares one warm, storybook autumn palette pulled straight from the red fox's woodland home. 🍁 Terracotta Warm Fox Red Sage Forest Green Cream Soft Daylight Mustard Golden Hour Answers Frequently Asked Questions 🍁 Will this fit my keyboard?The set uses standard MX-style stems and supports most popular layouts, including ANSI and ISO boards, Alice layout ergonomic keyboards, and boards with a 7u spacebar. Unsure? Send us your keyboard model and we'll confirm before you order. How many keys are included?The set includes 139 keycaps in total, covering alphas, modifiers, the function row, and the themed novelty caps shown in the photos. What switches does it work with?Any MX-style switch — Cherry MX, Gateron, Kailh and most MX clones. It is not compatible with membrane, scissor-switch, or low-profile keyboards. Does it work with Alice layout keyboards?Yes. The set includes the extra keys needed to dress ergonomic Alice-style split keyboards, alongside standard ANSI and ISO layouts. Is a keyboard included?No — this listing is for the keycap set only. Keyboards, switches and accessories shown in the photos are for display purposes and are not included. How do I install the keycaps?Use a keycap puller to remove your existing caps, line up the new set with your layout, and press each cap onto its switch stem until it clicks. The whole swap usually takes just a few minutes. What profile is SO profile?SO profile is a smooth, gently sculpted keycap shape designed for a comfortable, ergonomic typing feel during long sessions. Will the colours look like the photos?We work hard to represent the warm terracotta, sage green and cream tones accurately. Monitor calibration can shift on-screen colour slightly, but the real-world caps stay true to the cozy autumn palette shown. Does it support a 7u spacebar?Yes, the set includes spacebar options sized for boards using a 7u spacebar, in addition to standard spacebar sizes. Can I buy just the novelty keys separately?This listing is sold as the complete 139-key set rather than individual novelties. All the red fox and forest-friend novelty caps shown are included within the full set. How should I store the set if I swap it out?Keep the caps in their original tray or a small storage box, away from direct sunlight and moisture, so they stay ready for your next swap whenever the mood strikes. The Experience Sound & Feel More than a look — the SO profile changes how your board feels under the fingers. 🍁 🤚A Comfortable, Rounded Touch The sculpted SO profile gives each cap a smooth, rounded top that feels gentle and natural under your fingertips through long typing sessions. 🍂A Theme You Can Feel From the spacebar to the novelty corner keys, the autumn forest details extend across the whole board for a setup that feels complete, not just decorated. Make It Yours Styling Ideas Bring the cozy autumn forest theme to life across your whole setup. 🍁 🪵Wood-Tone Desk Pair the set with a wooden desk mat or warm wood deskpad to round out the woodland-cabin atmosphere. 🕯️Warm Lighting Soft, warm-white desk lighting makes the terracotta and cream tones glow like a forest at golden hour. 🌿A Touch of Green A small desk plant or two echoes the forest theme and keeps the whole setup feeling fresh and alive. 🦊Feature the Novelties Place the red fox and leaf novelty caps on your Escape or Enter key to make the theme's hero details pop. Shop With Confidence Our Promise to You 🍁 📦Carefully Packed Every set is securely packaged so your keycaps arrive in perfect, ready-to-mount condition. 🔍Quality Checked Each order is inspected for clean, even artwork and consistent moulding before it ships. 💬Friendly Support Questions about fit, layout or spacebar size? Reach out any time and a real person will help. 🦊Made for Fans Designed for people who love a cozy, characterful desk that feels like a little escape into nature. 🎁 A Cozy Gift for Any Desk Warm, whimsical and full of charm — the Red Fox & Forest Friends set is a thoughtful surprise for keyboard enthusiasts, animal lovers, and anyone who treasures a cozy setup. Bring the Forest to Your Desk A red fox curled up by the trail, acorns underfoot, leaves drifting past every letter key — this 139-key set turns your board into a little storybook autumn woodland, one keystroke at a time. Ready to bring this little guy home? Your set is just one tap away. 🛒Take Me to Add to Cart
More you might like
Related
Forest Friends Forest the Fox
Related
Forest Friends - Forest the Fox
Related
Forest Friends Forest the Fox
Related