@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Fredoka:wght@600&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');

:root{--ink:#383138;--muted:#847a80;--pink:#b45678;--line:#eee5e5;--paper:#fbf8f5;--base:#c6b3e4;--buttons:#e8d7bd;--key-ink:#443d4a;--font:'DM Sans',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a,input,label{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #a34a74;outline-offset:5px}input:focus-visible{outline:2px solid #a34a74;outline-offset:3px}[hidden]{display:none!important}.shell{max-width:1180px;margin:0 auto;padding-left:40px;padding-right:40px}.announcement{height:32px;display:flex;gap:12px;align-items:center;justify-content:center;background:#ede2e5;color:#745561;font-size:10px;font-weight:600;letter-spacing:1.1px}.announcement span{font-size:17px}.site-header{display:flex;align-items:center;height:98px;border-bottom:1px solid var(--line);gap:22px}.brand{font-family:'Manrope',sans-serif;font-size:32px;font-weight:800;letter-spacing:-1.9px;display:inline-flex;align-items:center;gap:3px}.brand-dot{color:#bc6e8d;font-size:28px;display:inline-block;margin-top:-10px}.header-divider{height:22px;width:1px;background:#d9cdd0}.studio-label{font-size:9px;letter-spacing:2px;font-weight:700;color:#87747c}.header-link{margin-left:auto;font-size:12px}.header-link span{margin-left:12px;color:#a36682}.intro{position:relative;display:flex;justify-content:space-between;align-items:center;padding:47px 0 39px}.eyebrow{display:flex;align-items:center;gap:8px;font-size:9px;font-weight:700;letter-spacing:2px;color:#9e627a}.eyebrow>span{width:6px;height:6px;border-radius:50%;background:#c47d98}h1{position:relative;font-family:'Manrope',sans-serif;font-size:clamp(34px,4.2vw,52px);line-height:1.17;font-weight:750;letter-spacing:-2.3px;margin:17px 0 17px}h1 em{font-family:Georgia,serif;font-weight:400;color:#ac6682;letter-spacing:-1.5px}.title-spark{width:40px;height:40px;position:absolute;margin:6px 0 0 22px;stroke:#bf90a2;stroke-width:2.2;fill:none}.intro p{font-size:13px;line-height:1.85;color:var(--muted);margin:0}.intro-note{padding:10px 49px 0 0;transform:rotate(-7deg);color:#ab7b8d;text-align:center}.intro-note>span{font-size:35px}.intro-note p{font-family:Georgia,serif;font-style:italic;font-size:17px;line-height:1.5;color:#ad7c8e;margin-top:8px}.intro-note svg{width:90px;height:45px;stroke:#b88a9d;stroke-width:1.5;fill:none;margin-left:35px}.workspace{display:grid;grid-template-columns:1.04fr 1fr;gap:30px;align-items:start}.editor,.preview-card,.summary-card{background:#fff;border:1px solid var(--line);border-radius:18px}.editor{padding:27px 28px 0;overflow:hidden}.editor-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:10px}h2{font-family:'Manrope',sans-serif;font-size:15px;letter-spacing:-.4px;margin:0;font-weight:750}.editor-heading>span{font-size:9px;color:#9b8c92;background:#f8f4f3;padding:6px 8px;border-radius:5px;white-space:nowrap}fieldset{min-width:0;padding:0;border:0;margin:0}.step{padding:0 0 24px;margin:0 0 25px;border-bottom:1px solid var(--line)}.step legend{font-family:'Manrope',sans-serif;font-size:14px;font-weight:750;letter-spacing:-.2px;display:flex;align-items:center;gap:10px;padding:0}.step-number{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:50%;font-family:var(--font);font-size:9px;font-weight:600;color:#aa7288;background:#f7edf1}.step-description{font-size:11px;color:var(--muted);margin:8px 0 19px 35px}.figure-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.figure-choice{position:relative;cursor:pointer}.figure-choice input,.swatch input{position:absolute;opacity:0;width:1px;height:1px}.figure-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:1px solid #eee6e8;background:#fcfaf9;border-radius:11px;min-height:91px;font-size:9px;font-weight:550;transition:background .2s,border-color .2s,transform .2s;white-space:nowrap}.figure-emoji{font-size:27px;line-height:1.1;filter:drop-shadow(0 3px 3px #8e6e8215)}.figure-choice:hover .figure-tile{transform:translateY(-3px);background:#faf0f3}.figure-choice input:checked+.figure-tile{border-color:#b97491;background:#fcf1f5;box-shadow:0 0 0 1px #b9749120;color:#9c4a6b}.figure-choice input:focus-visible+.figure-tile,.swatch input:focus-visible+span{outline:3px solid #a34a74;outline-offset:4px}.selection-tick{display:none;position:absolute;top:-5px;right:-4px;width:16px;height:16px;align-items:center;justify-content:center;border-radius:50%;background:#b97491;color:#fff;font-size:9px;border:2px solid #fff}.figure-choice input:checked+.figure-tile .selection-tick{display:flex}.selection-caption{text-align:center;font-size:10px;color:#ad8495;margin:12px 0 0}.input-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;margin-bottom:9px;gap:10px}.input-label>span{font-size:9px;font-weight:400;color:#97858e}input[type=text]{width:100%;border:1px solid #e8dee3;border-radius:8px;background:#fff;padding:13px 15px;color:var(--ink);font-size:12px;transition:border-color .2s}input[type=text]::placeholder{color:#b4a9af}input[type=text]:focus{border-color:#bd7d99;outline:2px solid #bd7d9922;outline-offset:0}.name-input-wrap{position:relative}.name-input-wrap input{padding-right:60px;text-transform:uppercase;letter-spacing:1px}.name-input-wrap>span{position:absolute;right:13px;top:15px;color:#aa969f;font-size:10px}.input-help{font-size:9px;color:#9b8c93;margin:7px 0 17px}.heart-option{border:1px solid #efdee4;background:#fdf7f9;border-radius:10px;padding:13px 12px}.heart-toggle{position:relative;display:flex;align-items:center;gap:10px;cursor:pointer}.heart-option-icon{font-size:27px;line-height:1;color:#b8708d}.heart-option-copy{flex:1}.heart-option-copy strong{display:block;font-size:10px;font-weight:600}.heart-option-copy small{display:block;font-size:9px;color:#9c8791;margin-top:4px}.surcharge{font-size:10px;color:#9f677d;white-space:nowrap}.heart-toggle input{position:absolute;right:0;width:30px;height:20px;opacity:0}.switch{width:29px;height:17px;border-radius:20px;background:#e2d9dd;position:relative;transition:background .2s;flex-shrink:0}.switch:after{content:'';position:absolute;width:11px;height:11px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #59303b20;transition:transform .2s}.heart-toggle input:checked+.switch{background:#ae6a85}.heart-toggle input:checked+.switch:after{transform:translateX(12px)}.heart-toggle input:focus-visible+.switch{outline:3px solid #a34a74;outline-offset:3px}.heart-name-wrap{margin-top:16px}.color-step{margin-bottom:0;border-bottom:0;padding-bottom:24px}.color-group+.color-group{margin-top:22px}.color-group legend{display:flex;justify-content:space-between;width:100%;font-family:var(--font);font-size:11px;font-weight:600;margin-bottom:12px}.color-group legend>span{font-size:10px;font-weight:400;color:#9b8490}.swatches{display:flex;gap:14px;padding:3px}.swatch{display:inline-flex;position:relative;cursor:pointer}.swatch>span:not(.sr-only){display:flex;align-items:center;justify-content:center;width:31px;height:31px;border-radius:50%;background:var(--swatch);box-shadow:inset 0 0 0 1px #0000000a;transition:transform .2s}.swatch:hover>span:not(.sr-only){transform:translateY(-2px)}.swatch input:checked+span{outline:1.5px solid #a46b85;outline-offset:4px}.swatch-check{display:none;background:#fffce6;color:#453442;border-radius:50%;width:14px;height:14px;align-items:center;justify-content:center;font-size:9px}.swatch input:checked+span .swatch-check{display:flex}.editor-bottom{margin:0 -28px;background:#fcfaf9;border-top:1px solid var(--line);text-align:center;padding:14px;color:#9f8994;font-size:10px}.editor-bottom span{margin-right:7px;color:#b58097}.preview-column{position:sticky;top:22px}.preview-card{padding:22px 22px 0}.preview-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px}.preview-heading h2{font-size:14px}.live-badge{font-size:8px;font-weight:600;letter-spacing:1px;color:#7e927f;display:flex;align-items:center;gap:5px;white-space:nowrap}.live-badge i{width:5px;height:5px;background:#91aa93;border-radius:50%;box-shadow:0 0 0 3px #91aa9310}.preview-stage{position:relative;overflow:hidden;border-radius:11px;height:335px;background-color:#f6eeed;background-image:radial-gradient(#ccb9c14d .8px,transparent .8px),radial-gradient(ellipse at 50% 45%,#fff9f9a6,transparent 65%);background-size:17px 17px,100% 100%;display:flex;align-items:center;justify-content:center}.preview-stage:after{content:'';position:absolute;width:230px;height:26px;background:#69515c14;border-radius:50%;filter:blur(11px);top:234px;left:50%;transform:translateX(-50%)}.stage-spark{position:absolute;font-family:Georgia,serif;font-size:36px;line-height:1;color:#c39aad}.spark-one{top:73px;left:40px}.spark-two{font-size:22px;right:39px;top:202px}.stage-label{position:absolute;font-family:Georgia,serif;font-size:13px;font-style:italic;right:20px;top:35px;transform:rotate(10deg);color:#b3859b}.product{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(-11deg) translateY(-18px);z-index:1;transition:transform .4s}.product:hover{transform:rotate(-6deg) translateY(-22px)}.keyring{width:48px;height:48px;border:4px solid #c3bac3;border-radius:50%;box-shadow:inset 1px 1px 1px #fff,1px 1px 1px #887e8b,0 2px 3px #5a455b20;background:transparent;margin-bottom:12px}.chain-link{position:absolute;top:40px;width:11px;height:26px;border:3px solid #b5adb8;border-radius:8px;box-shadow:1px 0 1px #fff;z-index:3}.figure-charm{position:relative;display:flex;align-items:center;justify-content:center;width:88px;height:83px;border-radius:27px;background:var(--base);box-shadow:inset 2px 3px 1px #ffffff80,inset -2px -4px 1px #67516b22,0 5px 0 #8e799b,0 9px 12px #69516c22;transition:background .2s}.figure-charm>span:first-child{font-size:43px;filter:drop-shadow(0 3px 1px #5a415318)}.charm-shine{position:absolute;top:9px;left:12px;width:18px;height:4px;border-radius:8px;background:#ffffff65;transform:rotate(-30deg)}.keyboard-base{margin-top:9px;padding:10px 11px 12px;border-radius:12px;background:var(--base);box-shadow:inset 1px 2px 1px #ffffff80,inset -1px -3px 1px #58435f35,0 6px 0 #8e799b,0 12px 15px #54435b20;transition:background .2s;max-width:340px}.keycaps{display:flex;gap:5px;justify-content:center}.keycap{display:flex;align-items:center;justify-content:center;width:34px;height:37px;border-radius:6px;background:var(--buttons);color:var(--key-ink);font-family:'Manrope',sans-serif;font-size:16px;font-weight:800;box-shadow:inset 0 2px 1px #ffffff70,inset -1px -3px 1px #00000012,0 3px 0 #65545c55;transition:background .2s,color .2s}.heart-charm{position:absolute;right:-38px;top:110px;width:66px;height:62px;background:#e9a6be;clip-path:polygon(50% 16%,65% 3%,84% 3%,98% 20%,98% 42%,87% 61%,50% 98%,13% 61%,2% 42%,2% 20%,16% 3%,35% 3%);display:flex;align-items:center;justify-content:center;transform:rotate(18deg);color:#793e58;font-size:9px;font-weight:700;padding-bottom:3px;filter:drop-shadow(0 3px 0 #9e6d83)}.stage-bottom{position:absolute;bottom:23px;left:10px;right:10px;display:flex;flex-direction:column;gap:7px;align-items:center;z-index:2}.preview-name{font-family:'Manrope',sans-serif;letter-spacing:3px;font-size:14px;font-weight:800}.stage-bottom>span:last-child{font-size:9px;color:#a08893}.preview-toolbar{display:flex;justify-content:space-between;align-items:center;padding:15px 0;font-size:9px;color:#a08f98;gap:8px}.preview-toolbar>span>span{font-size:13px;margin-right:4px}.text-button{background:none;border:0;padding:4px 0;color:#a26b83;font-size:9px;text-decoration:underline;text-underline-offset:3px}.summary-card{margin-top:17px;padding:23px}.summary-heading{display:flex;justify-content:space-between;align-items:center}.summary-heading h2{font-size:13px}.summary-heading>span{color:#c09aab;font-size:19px}.summary{display:grid;gap:12px;margin:21px 0}.summary>div{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px}.summary dt{color:#94828c}.summary dd{margin:0;display:flex;align-items:center;gap:7px;text-align:right;font-size:11px;font-weight:500;overflow-wrap:anywhere;max-width:65%}#sumCount{font-size:9px}.color-dot{width:9px;height:9px;border-radius:50%;border:1px solid #00000008;display:inline-block}.extras-line{border-top:1px dashed #e6dce1;padding-top:16px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;font-size:10px;color:#88747e}.extras-line strong{font-family:'Manrope',sans-serif;font-size:16px;font-weight:750;color:#78576a}.save-button{display:flex;align-items:center;justify-content:space-between;width:100%;background:#ae6a86;color:#fff;border:1px solid #ae6a86;border-radius:8px;padding:14px 18px;font-size:12px;font-weight:600;box-shadow:0 4px 8px #ae6a8612;transition:background .2s,transform .2s}.save-button:hover{background:#96526f;transform:translateY(-1px)}.save-button>span:last-child{font-size:20px;line-height:16px}.save-button:disabled{opacity:.6;cursor:wait}.save-note{text-align:center;font-size:9px;color:#a2929a;margin:11px 0 0}.status{font-size:11px;line-height:1.6;color:#567c61;margin:10px 0 0}.status:empty{display:none}.status.error{color:#ae3b51}.preview-disclaimer{margin:14px 14px 0;font-size:9px;line-height:1.8;text-align:center;color:#a08e97}.preview-disclaimer>span{margin-right:4px}.how-it-works{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:48px;padding:30px 0;display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:25px;align-items:center}.how-it-works .eyebrow{font-size:7px;letter-spacing:1.2px}.how-it-works h2{font-size:23px;margin-top:9px}.how-item{position:relative;padding-left:32px}.how-item>span{position:absolute;top:2px;left:0;font-size:10px;color:#b68b9e}.how-item h3{font-size:11px;margin:0 0 7px;font-weight:600}.how-item p{font-size:10px;color:#9d8b94;line-height:1.7;margin:0}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:30px;padding-bottom:32px}.site-footer .brand{font-size:23px}.site-footer .brand-dot{font-size:22px}.site-footer>span{font-size:9px;color:#a08e97}.site-footer>span:last-child>span{margin-left:5px;color:#b37793}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-70px;left:15px;padding:12px 20px;background:#fff;z-index:10;border-radius:8px}.skip-link:focus{top:10px}
@media(min-width:1350px){.shell{max-width:1220px}.intro{padding-top:52px;padding-bottom:44px}.editor{padding-top:30px}.preview-stage{height:355px}.preview-stage:after{top:244px}.stage-bottom{bottom:28px}}
@media(max-width:1000px){.shell{padding-left:26px;padding-right:26px}.workspace{gap:20px}.editor{padding-left:20px;padding-right:20px}.editor-bottom{margin-left:-20px;margin-right:-20px}.editor-heading{align-items:flex-start;flex-direction:column;gap:8px}.figure-grid{gap:5px}.figure-tile{font-size:8px;min-height:83px}.figure-emoji{font-size:24px}.preview-card{padding:18px 16px 0}.preview-heading{flex-wrap:wrap}.preview-stage{height:337px}.preview-toolbar{flex-wrap:wrap}.intro-note{padding-right:20px}.swatches{gap:12px}.heart-toggle{gap:7px}.heart-option-copy strong{font-size:9px}.heart-option-copy small{font-size:8px}.surcharge{font-size:9px}.summary-card{padding:20px}.keycap{width:29px;height:34px;font-size:14px}.keyboard-base{padding-left:8px;padding-right:8px}.keycaps{gap:4px}.how-it-works{gap:15px}.how-it-works .eyebrow{font-size:6px}}
@media(max-width:760px){.shell{padding-left:22px;padding-right:22px}.site-header{height:80px;gap:15px}.brand{font-size:28px}.header-link{font-size:10px}.studio-label{font-size:7px;letter-spacing:1.3px}.intro{padding-top:33px;padding-bottom:29px}h1{font-size:42px;letter-spacing:-1.8px}.intro p{font-size:12px}.intro-note{display:none}.title-spark{width:29px;height:29px;margin-left:16px}.workspace{grid-template-columns:1fr;gap:20px;max-width:540px;margin:auto}.editor{padding:23px 24px 0}.editor-heading{flex-direction:row;align-items:center;margin-bottom:25px}.editor-heading h2{font-size:14px}.editor-bottom{margin-left:-24px;margin-right:-24px}.figure-tile{font-size:9px;min-height:91px}.figure-emoji{font-size:28px}.figure-grid{gap:8px}.heart-option-copy strong{font-size:11px}.heart-option-copy small{font-size:10px}.surcharge{font-size:10px}.swatches{gap:18px}.swatch>span:not(.sr-only){width:34px;height:34px}.preview-column{position:static}.preview-heading{flex-wrap:nowrap}.preview-card{padding:22px 22px 0}.preview-stage{height:355px}.keycap{width:33px;height:37px;font-size:16px}.preview-toolbar{font-size:9px}.summary-card{padding:24px}.summary>div,.summary dd{font-size:12px}.how-it-works{margin-top:34px;grid-template-columns:1fr 1fr;gap:27px 20px;padding:27px 0}.how-it-works .eyebrow{font-size:7px}.site-footer{flex-wrap:wrap;padding-top:25px;padding-bottom:25px}.site-footer>span:last-child{display:none}}
@media(max-width:390px){.shell{padding-left:16px;padding-right:16px}.studio-label{display:none}.header-divider{display:none}h1{font-size:36px}.title-spark{width:24px}.editor{padding-left:16px;padding-right:16px}.editor-bottom{margin-left:-16px;margin-right:-16px}.editor-heading h2{font-size:12px}.editor-heading>span{font-size:8px}.figure-grid{gap:5px}.figure-tile{font-size:8px}.heart-option{padding:12px 9px}.heart-option-copy strong{font-size:10px}.heart-option-copy small{font-size:8px}.swatches{gap:15px}.swatch>span:not(.sr-only){width:29px;height:29px}.keycap{width:28px;height:34px;font-size:14px}.keycaps{gap:3px}.preview-card{padding-left:15px;padding-right:15px}.heart-charm{right:-19px}.stage-label{font-size:11px}.how-it-works h2{font-size:21px}}
/* Real product: vertical printed bar, flat charm on top, ribbed sides, keys in square pockets. */
.editor, .preview-column { min-width: 0; }
.intro { gap: 32px; }
h1 .trend { display: inline-block; margin-top: 4px; color: #1d1a1c; font-size: .62em; letter-spacing: -.6px; }
.base-fixed .base-fixed-extra { margin-top: -2px; color: #ad7c8e; font-style: italic; }
.intro-logo { flex-shrink: 0; width: 210px; height: 210px; object-fit: cover; border-radius: 50%; border: 6px solid #fff; box-shadow: 0 0 0 1px #eadde2, 0 14px 30px #4a2c3a24; transform: rotate(4deg); margin-right: 24px; }
.intro-logo-button { position: relative; flex-shrink: 0; padding: 0; border: 0; border-radius: 50%; background: none; cursor: zoom-in; }
.intro-logo-button .intro-logo { display: block; transition: transform .25s ease, box-shadow .25s ease; }
.intro-logo-button:hover .intro-logo { transform: rotate(0) scale(1.04); box-shadow: 0 0 0 1px #eadde2, 0 18px 38px #4a2c3a38; }
.logo-zoom-hint { position: absolute; right: 28px; bottom: 8px; display: grid; place-items: center; width: 34px; height: 34px; border: 3px solid #fff; border-radius: 50%; background: #b45678; color: #fff; font-size: 21px; box-shadow: 0 4px 12px #4a2c3a24; pointer-events: none; }
.logo-dialog-open { overflow: hidden; scrollbar-gutter: stable; }
.logo-dialog { padding: 0; width: min(760px, calc(100vw - 40px), calc(100dvh - 64px)); max-width: none; max-height: none; overflow: visible; border: 6px solid #fff; border-radius: 24px; background: #fff; box-shadow: 0 24px 100px #130c1659; }
.logo-dialog[open] { animation: logo-reveal .3s ease-out both; }
.logo-dialog::backdrop { background: #231b26bd; backdrop-filter: blur(9px); }
.logo-dialog[open]::backdrop { animation: logo-backdrop .25s ease-out both; }
.logo-dialog > img { display: block; width: 100%; height: auto; border-radius: 18px; }
.logo-dialog-close { position: absolute; z-index: 1; top: 12px; right: 12px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0 0 3px; border: 1px solid #ffffff80; border-radius: 50%; background: #fff; color: var(--ink); font-size: 32px; line-height: 1; box-shadow: 0 3px 14px #231b2640; transition: transform .2s ease; }
.logo-dialog-close:hover { transform: rotate(90deg); }
@keyframes logo-reveal { from { opacity: 0; transform: translateY(18px) scale(.94); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes logo-backdrop { from { opacity: 0; } to { opacity: 1; } }
@media(max-width:1000px) { .intro-logo { width: 170px; height: 170px; margin-right: 0; } }
@media(max-width:1000px) { .logo-zoom-hint { right: 0; width: 28px; height: 28px; font-size: 18px; } }
@media(max-width:760px) { .intro { gap: 16px; } .intro-logo { width: 104px; height: 104px; border-width: 4px; } }
@media(max-width:390px) { .intro-logo { width: 84px; height: 84px; } }
.figure-art { display: block; flex-shrink: 0; width: 46px; height: 46px; object-fit: contain; }
.figure-tile { gap: 4px; }
.preview-stage {
	height: 540px;
	background: radial-gradient(ellipse at 50% 35%, #fbfaf7, #e9e4dd 80%);
	isolation: isolate;
}
.preview-stage:after { display: none; }
.product {
	--product-scale: 1;
	--pocket: color-mix(in srgb, var(--base) 70%, #000);
	--rib: color-mix(in srgb, var(--base) 82%, #000);
	--key-edge: color-mix(in srgb, var(--buttons) 84%, #000);
	flex-direction: column;
	flex-shrink: 0;
	width: max-content;
	transform: scale(var(--product-scale));
	transition: none;
	filter: drop-shadow(5px 9px 8px #3b2a3238);
}
.product:hover { transform: scale(var(--product-scale)); }
.figure-charm {
	position: relative;
	z-index: 2;
	width: 112px;
	height: 112px;
	margin: 0 0 -10px;
	border-radius: 0;
	background: none;
	box-shadow: none;
	filter: drop-shadow(0 2px 2px #3b2a3224);
}
.figure-charm img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; }
/* Centre the faces over the keys, rather than their asymmetric ears. */
.figure-charm img[src$="/pikachu.png"] { transform: translate(6px, -5px); }
.figure-charm img[src$="/kuromi.png"] { transform: translate(-3px, -5px); }
.figure-charm img[src$="/kitty.png"],
.figure-charm img[src$="/capybara.png"] { transform: translateY(-5px); }
.keyboard-base {
	position: relative;
	margin: 0;
	padding: 11px 8px;
	max-width: none;
	border-radius: 8px;
	background: linear-gradient(160deg, color-mix(in srgb, var(--base) 86%, #fff), var(--base) 45%);
	box-shadow: inset 0 0 0 1px #ffffff2e, 0 3px 0 var(--rib);
}
.keyboard-base:before {
	content: '';
	position: absolute;
	inset: 2px -4px 0;
	z-index: -1;
	border-radius: 7px;
	background: repeating-linear-gradient(to bottom, color-mix(in srgb, var(--base) 88%, #fff) 0 1px, var(--base) 1px 2.5px, var(--rib) 2.5px 3.5px, transparent 3.5px 5px);
}
.product[data-base-shiny="true"] .keyboard-base { background: linear-gradient(150deg, #ffffff70, #fff0 40%, #ffffff40 70%, #fff0), var(--base); }
.keycaps { flex-direction: column; gap: 8px; }
.keycap {
	position: relative;
	width: 50px;
	height: 50px;
	border-radius: 9px;
	background: var(--buttons);
	box-shadow: 0 0 0 2.5px var(--pocket), inset 0 0 0 2px var(--key-edge), inset 0 3px 2px 1px #ffffff45, inset 0 -3px 2px #00000022;
}
.keycap:before {
	content: '';
	position: absolute;
	inset: 5px;
	border-radius: 6px;
	background: repeating-linear-gradient(135deg, #ffffff16 0 .8px, transparent .8px 2.4px);
	box-shadow: 0 0 0 1px #00000012;
}
.product[data-keys-shiny="true"] .keycap:before { background: linear-gradient(140deg, #ffffff80, #fff0 45%, #ffffff50 75%, #fff0), repeating-linear-gradient(135deg, #ffffff16 0 .8px, transparent .8px 2.4px); }
.key-letter {
	position: relative;
	font-family: 'Fredoka', 'Manrope', sans-serif;
	font-size: 33px;
	font-weight: 600;
	line-height: 1;
	color: var(--letter, #fff);
	text-shadow: 0 1px 0 #00000024, 0 2px 2px #0000002a;
}
.key-glyph {
	position: relative;
	height: 64%;
	aspect-ratio: 24 / 27;
	overflow: visible;
	fill: none;
	stroke: var(--letter, #fff);
	stroke-width: 4.8;
	stroke-linecap: round;
	stroke-linejoin: round;
	filter: drop-shadow(0 1px 0 #00000026) drop-shadow(0 2px 1.5px #0000002a);
}
.base-fixed { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 10px; padding: 12px 14px; margin-bottom: 22px; border: 1px solid #eee3e7; border-radius: 10px; background: #fcfaf9; font-size: 11px; }
.base-fixed-label { font-weight: 600; }
.base-fixed-value { display: inline-flex; align-items: center; gap: 7px; font-weight: 600; }
.base-fixed-value .color-dot { width: 16px; height: 16px; }
.base-fixed small { flex-basis: 100%; color: #9b8c93; font-size: 9px; }
.letter-swatch .letter-sample { font-family: 'Fredoka', 'Manrope', sans-serif; font-size: 15px; font-weight: 700; line-height: 1; color: var(--letter); }
.letter-swatch input:checked + span .letter-sample { text-decoration: underline; text-underline-offset: 3px; }
@media(max-width:760px) { .preview-stage { height: 480px; } }
@media(max-width:390px) { .preview-stage { height: 430px; } .figure-art { width: 38px; height: 38px; } }
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}