@font-face{font-family:system-fallback;src:local("PingFang SC")}
:root{--paper:#f7f5ef;--ink:#2d2b27;--muted:#7d776c;--brown:#875b46;--line:#dcd7cc;--serif:"Songti SC","Noto Serif CJK SC",Georgia,serif;--sans:system-ui,-apple-system,"PingFang SC",sans-serif;scroll-behavior:smooth;scroll-padding-top:90px}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible{outline:3px solid #b27c55;outline-offset:5px}button{touch-action:manipulation}h1,h2,h3,p{margin:0}em{font-style:normal;color:var(--brown)}.nav{display:flex;align-items:center;justify-content:space-between;max-width:1160px;margin:auto;padding:27px 30px;border-bottom:1px solid var(--line)}.wordmark{display:inline-flex;align-items:center;gap:0;font-size:24px;font-weight:750;letter-spacing:-1.3px}.wordmark i{font:18px var(--serif);border:1px solid #a49481;border-radius:6px;padding:1px 7px;margin-left:10px;color:var(--brown);box-shadow:0 2px 0 #c9bfb0}.nav nav{display:flex;gap:35px;font-size:13px}.nav a:hover{color:var(--brown)}.nav-cta{font-size:13px}.nav-cta span{padding-left:16px}.hero{max-width:1160px;padding:79px 30px 63px;margin:auto;position:relative}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--muted);display:flex;align-items:center;gap:8px}.eyebrow>span{width:5px;height:5px;border-radius:50%;background:var(--brown)}h1{font:500 clamp(48px,5.9vw,78px)/1.3 var(--serif);letter-spacing:-2px;margin:25px 0}.intro{font-size:15px;line-height:1.95;color:#716b61}.hero-actions{display:flex;align-items:center;gap:30px;margin:29px 0 20px}.button{display:inline-flex;align-items:center;gap:45px;padding:15px 22px;border-radius:7px;font-size:13px;font-weight:550;border:0}.primary{background:var(--brown);color:#fff;box-shadow:0 3px 0 #67422f;transition:transform .15s}.primary:hover{transform:translateY(-2px)}.text-link{font-size:12px;border-bottom:1px solid var(--line);padding:6px 0}.hero-note{font-size:10px;color:var(--muted)}.hero:after{content:"⌘";position:absolute;right:60px;top:115px;font:150px Georgia,serif;color:#e4ded2;transform:rotate(12deg);pointer-events:none}.playground{scroll-margin-top:20px;max-width:1100px;margin:0 auto;padding:29px 32px 20px;border:1px solid #d7cdbd;border-radius:18px;background:#ede8de;box-shadow:0 14px 38px #4e3e2610}.play-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.play-top h2{font:500 29px var(--serif);margin-top:12px}.sound-en{font:11px var(--sans);color:var(--muted);display:inline-block;margin-left:14px}.audio-toggle{background:#f9f7f2;border:1px solid #cfc5b6;border-radius:30px;padding:12px 17px;font-size:12px}.audio-toggle[aria-pressed=true]{background:#e0d4c5;color:#6b4734}.desk-stage{position:relative;margin-top:45px;padding-top:34px}.keyboard{padding:17px 18px 21px;background:#dcd4c5;border:1px solid #ccc1af;border-radius:13px;box-shadow:0 7px 0 #bbb09d,0 16px 22px #58412618}.key-row{display:flex;gap:7px;margin-top:7px}.key-row:first-child{margin-top:0}.key{flex:var(--units,1);min-width:0;height:49px;display:flex;align-items:center;justify-content:center;background:#fcfaf3;border:1px solid #d3caba;border-radius:6px;box-shadow:0 4px 0 #bfb4a1;font:12px ui-monospace,"SF Mono",monospace;transition:background .08s,transform .08s;user-select:none}.key.accent{background:#ab8467;color:#fff;border-color:#987459;box-shadow:0 4px 0 #795b43}.key.pressed{background:#875b46;color:white;transform:translateY(3px);box-shadow:0 1px 0 #6c4d3a}.little-cat,.cat-sprite{background-image:url("assets/kitten.png");background-size:300% 200%;background-position:0 0;background-repeat:no-repeat}.little-cat{position:absolute;right:10px;top:-51px;width:120px;height:120px;pointer-events:none;z-index:1}.play-bottom{display:flex;justify-content:space-between;gap:12px;margin:25px 0 21px;font-size:11px;color:#776e61}.tiny-label{white-space:nowrap;font-size:10px}.sound-picks{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.sound-choice{display:flex;align-items:center;gap:12px;text-align:left;padding:15px 12px;background:transparent;border:1px solid #d6cdbf;border-radius:7px}.sound-choice.selected{background:#f9f6ee;border-color:var(--brown)}.sound-choice strong{display:block;font-size:12px;font-weight:550}.sound-choice small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.sample-symbol{font:30px var(--serif);color:var(--brown)}.sound-choice i{font:10px var(--serif);color:var(--muted);margin-left:auto;align-self:flex-start}.sample-note{font-size:10px;color:var(--muted);line-height:1.7;margin-top:17px}.companion-section{max-width:1100px;margin:125px auto;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.cat-scene{min-height:370px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.cat-halo{position:absolute;width:310px;height:310px;border-radius:50%;background:#ede8dc;bottom:35px}.pet-cat{position:relative;width:305px;height:305px;border:0;background:transparent;padding:0;z-index:1}.cat-sprite{display:block;width:100%;height:100%}.cat-caption{font-size:10px;color:var(--muted);z-index:1;margin-top:15px}.desk-line{position:absolute;bottom:36px;height:1px;background:var(--line);width:90%}.companion-copy h2,.section-intro h2{font:500 44px/1.4 var(--serif);margin:18px 0 23px;letter-spacing:-1px}.companion-copy p,.section-intro p{font-size:13px;line-height:1.95;color:#797166;margin:17px 0}.pose-controls{display:flex;gap:7px;margin:23px 0 18px}.pose-controls button{border:1px solid var(--line);background:transparent;border-radius:30px;padding:8px 13px;font-size:11px}.pose-controls button[aria-pressed=true]{background:#e8ded1;border-color:#cdb9a3}.companion-copy>small{font-size:10px;color:var(--muted);line-height:1.8;display:block}.your-desk{max-width:1100px;margin:130px auto;display:grid;grid-template-columns:1fr 1.05fr;gap:90px;align-items:center}.recipe-demo{border:1px solid var(--line);border-radius:8px;padding:25px 25px 17px;background:#fcfbf7;transform:rotate(-2deg);box-shadow:8px 12px 0 #ebe5d9}.recipe-title{display:flex;justify-content:space-between;font:16px var(--serif);padding-bottom:20px}.recipe-title span:last-child{font:10px var(--sans);color:var(--muted)}.recipe-row{display:flex;align-items:center;gap:16px;padding:20px 0;border-top:1px solid var(--line);font-size:11px}.recipe-row kbd{display:flex;align-items:center;justify-content:center;font:11px ui-monospace,monospace;min-width:65px;height:32px;border:1px solid #d5cdbf;box-shadow:0 3px 0 #dad3c7;border-radius:4px;background:#f8f5ed}.recipe-row>span:not(.recipe-bar){color:var(--muted);min-width:36px}.recipe-row strong{font-weight:500;white-space:nowrap}.recipe-bar{height:5px;width:60px;margin-left:auto;border-radius:9px;background:#b58f70}.recipe-bar.porcelain{background:#c4b9a3;width:43px}.recipe-bar.paw{background:#dba9a0;width:30px}.recipe-foot{font-size:10px;color:var(--muted);border-top:1px solid var(--line);padding-top:16px}.app-section{padding:70px 30px;background:#eae5db}.app-section-title{max-width:1100px;margin:0 auto 35px;display:flex;align-items:end;justify-content:space-between;gap:20px}.app-section h2{font:500 34px/1.5 var(--serif)}.app-section p{font-size:12px;color:var(--muted);line-height:1.8}.app-section figure{margin:0 auto;max-width:980px}.app-section img{display:block;width:100%;height:auto;border-radius:8px;border:1px solid #cfc5b6;box-shadow:0 15px 45px #5b48301a}.app-section figcaption{font-size:10px;text-align:center;margin-top:17px;color:var(--muted)}.trust{max-width:1100px;margin:90px auto;display:grid;grid-template-columns:repeat(3,1fr);gap:50px}.trust>div{padding-top:20px;border-top:1px solid #bcb2a1}.trust span{font-size:10px;color:var(--brown)}.trust h3{font:500 21px var(--serif);margin:17px 0}.trust p{font-size:12px;line-height:1.85;color:var(--muted)}.release{text-align:center;padding:70px 20px 110px}.release .eyebrow{justify-content:center}.release h2{font:500 60px/1.3 var(--serif);margin:23px 0}.release p{font-size:13px;line-height:1.9;color:var(--muted);margin-bottom:26px}.release small{display:block;font-size:10px;color:var(--muted);line-height:1.9;margin-top:22px}footer{max-width:1160px;border-top:1px solid var(--line);padding:30px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px}footer>span{font-size:11px;color:var(--muted)}footer button{border:0;background:none;font-size:11px;color:var(--muted)}dialog{max-width:530px;width:calc(100% - 40px);border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);padding:30px}dialog::backdrop{background:#2d241d66}dialog h2{font:24px var(--serif);margin-bottom:20px}dialog p{font-size:13px;line-height:1.9;margin:16px 0;color:#6b6257}dialog a{text-decoration:underline}dialog form{text-align:right;margin-top:20px}
@media(min-width:1450px){.hero{padding-top:90px;padding-bottom:80px}}
@media(max-width:1150px){.playground,.companion-section,.your-desk,.trust{margin-left:30px;margin-right:30px}.companion-section,.your-desk{gap:35px}.sound-choice{gap:8px}.sound-choice i{display:none}}
@media(max-width:700px){.nav{padding:20px}.nav nav{gap:16px;font-size:12px}.nav-cta{display:none}.hero{padding:58px 24px 45px}.hero:after{right:25px;top:80px;font-size:90px;opacity:.6}h1{font-size:47px;position:relative;z-index:1}.intro{font-size:13px}.hero-actions{gap:22px}.hero-note{font-size:9px}.playground{margin:0 14px;padding:20px 12px 16px;border-radius:12px}.play-top{padding:0 5px}.play-top h2{font-size:23px}.sound-en{display:block;margin:6px 0 0;font-size:9px}.eyebrow{font-size:9px;letter-spacing:1px}.audio-toggle{font-size:11px;padding:10px}.desk-stage{margin-top:36px;padding-top:35px}.keyboard{padding:10px 7px 13px;border-radius:8px}.key-row{gap:3px;margin-top:5px}.key{height:32px;font-size:8px;border-radius:4px;box-shadow:0 3px 0 #bfb4a1}.little-cat{width:90px;height:90px;top:-35px}.play-bottom{margin:20px 4px 15px;font-size:10px}.tiny-label{display:none}.sound-picks{grid-template-columns:repeat(2,1fr);gap:7px}.sound-choice{padding:12px 9px}.sample-symbol{font-size:25px}.sample-note{font-size:9px}.companion-section{grid-template-columns:1fr;gap:25px;margin:65px 25px}.cat-scene{min-height:290px}.cat-halo{width:260px;height:260px;bottom:20px}.pet-cat{width:250px;height:250px}.companion-copy h2,.section-intro h2{font-size:37px}.companion-copy p,.section-intro p{font-size:12px}.your-desk{grid-template-columns:1fr;gap:30px;margin:65px 25px}.recipe-demo{padding:20px 16px;transform:rotate(-1deg)}.recipe-row{gap:12px}.app-section{padding:45px 20px}.app-section-title{display:block}.app-section h2{font-size:29px}.app-section p{margin-top:18px}.trust{grid-template-columns:1fr;gap:30px;margin:55px 25px}.release{padding:35px 20px 70px}.release h2{font-size:48px}footer{padding:25px 20px;flex-wrap:wrap}.wordmark{font-size:21px}footer>span{display:none}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* Keep the playable keyboard in the opening view, not below a marketing banner. */
.hero{padding-top:30px;padding-bottom:30px}.hero:after{display:none}.hero-body{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.hero h1{font-size:58px;line-height:1.23;margin:19px 0 0}.hero-copy{padding-top:12px}.hero-actions{margin:18px 0 15px}.intro{font-size:13px}.desk-stage{margin-top:22px;padding-top:30px}.key{height:42px}.little-cat{top:-53px;width:112px;height:112px}
@media(min-width:1450px){.hero{padding-top:45px;padding-bottom:40px}}
@media(max-width:700px){.hero{padding:28px 24px 28px}.hero-body{display:block}.hero h1{font-size:43px;margin:15px 0 18px}.hero-copy{padding-top:0}.hero-actions{margin:20px 0 15px}.hero-note{font-size:9px}.desk-stage{margin-top:24px;padding-top:28px}.key{height:32px}.little-cat{top:-43px;width:90px;height:90px}}

/* Original six-pose artwork with a short, restrained opacity transition. */
.little-cat,.cat-sprite{background-image:none}.cat-sprite{position:relative}
.kitten-frame{position:absolute;inset:0;display:block;background-image:url("assets/kitten.png");background-size:300% 200%;background-repeat:no-repeat;transition:opacity 120ms ease-in-out;pointer-events:none}
@media(prefers-reduced-motion:reduce){.kitten-frame{transition:none}}

.kitten-inbetweens{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;visibility:hidden}
.kitten-composited .kitten-frame{display:none}
.kitten-composited .kitten-inbetweens{visibility:visible;opacity:1;transition:none}

.play-volume{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:24px 4px 0;font-size:11px;color:var(--muted)}.play-volume input{width:130px;accent-color:var(--brown)}.play-volume output{min-width:32px;text-align:right;font-variant-numeric:tabular-nums}

.sound-profile{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:23px 4px 0;color:var(--muted);font-size:11px;min-height:44px}.sound-profile canvas{width:230px;max-width:40%;height:44px;opacity:.72}.sound-profile canvas[hidden]{display:none}
.first-run,.site-faq{max-width:1100px;margin:85px auto}.first-run{display:grid;grid-template-columns:1fr 1.1fr;gap:65px;padding-top:38px;border-top:1px solid var(--line)}.first-run h2,.site-faq h2{font:500 34px/1.5 var(--serif);margin:15px 0 30px}.first-run ol{list-style:none;padding:0;margin:0}.first-run li{display:flex;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.first-run li:first-child{padding-top:0}.first-run li>span{font:12px var(--serif);color:var(--brown);padding-top:4px}.first-run h3{font-size:14px;font-weight:550}.first-run p,.site-faq p{font-size:12px;line-height:1.9;color:var(--muted);margin-top:9px}.site-faq{max-width:820px}.site-faq details{border-top:1px solid var(--line);padding:21px 0}.site-faq details:last-child{border-bottom:1px solid var(--line)}.site-faq summary{font-size:14px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px}.site-faq summary::-webkit-details-marker{display:none}.site-faq summary:after{content:'+';color:var(--brown)}.site-faq details[open] summary:after{content:'−'}.site-faq summary:focus-visible{outline:2px solid var(--brown);outline-offset:5px}.site-faq p{max-width:700px;margin:14px 24px 0 0}
@media(max-width:1150px){.first-run,.site-faq{margin-left:30px;margin-right:30px}}
@media(max-width:700px){.sound-profile{margin-top:18px;gap:12px;font-size:10px}.sound-profile p{max-width:65%;line-height:1.7}.sound-profile canvas{width:100px;max-width:30%}.first-run,.site-faq{margin:55px 25px}.first-run{grid-template-columns:1fr;gap:15px}.first-run h2,.site-faq h2{font-size:29px}.first-run p,.site-faq p{font-size:12px}}

.footer-faq{font-size:11px;color:var(--muted)}

.library-picker{display:flex;align-items:center;gap:14px;margin-top:20px;font-size:11px;color:var(--muted)}.library-picker select{font:inherit;color:var(--ink);min-width:190px;background:#f9f6ee;border:1px solid #cfc5b6;border-radius:6px;padding:10px 32px 10px 12px}.library-picker select:focus-visible{outline:2px solid var(--brown);outline-offset:3px}.library-picker span{margin-left:auto;font-size:10px}@media(max-width:700px){.library-picker{flex-wrap:wrap;gap:10px}.library-picker select{flex:1;min-width:140px}.library-picker span{width:100%;margin-left:0}}

.companion-sounds{display:flex;gap:8px;margin:18px 0}.companion-sounds button{background:transparent;border:1px solid var(--line);border-radius:6px;padding:9px 16px;font-size:12px}.companion-sounds button.selected{border-color:var(--brown);background:#e8ded1}

.keyboard:focus-visible{outline:2px solid #875b46;outline-offset:5px}

/* A shared opening portrait; pack changes only affect the companion demo. */
.hero-body{grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:35px}
.hero h1{font-size:clamp(43px,5vw,58px);margin:17px 0 14px}
.hero-copy{padding:0}.hero-friends{position:relative;margin:0;align-self:center;isolation:isolate}
.hero-friends:before{content:"";position:absolute;inset:21% 2% 7%;border-radius:50%;background:#eee7db;z-index:-1}
.hero-friends img{display:block;width:100%;height:auto;position:relative;z-index:1;transform-origin:50% 85%;transition:transform .25s ease}
.hero-friends.is-typing img{transform:translateY(-5px) rotate(-1deg)}
.friend-ripple{position:absolute;bottom:4%;left:15%;width:70%;height:18%;border:1px solid #b29477;border-radius:50%;opacity:0;transform:scale(.85);transition:opacity .3s,transform .4s}
.is-typing .friend-ripple{opacity:.5;transform:scale(1.07)}
.keyboard-friends{position:absolute;right:10px;top:-53px;width:190px;height:112px;pointer-events:none;z-index:1}
.keyboard-friends .little-cat{position:absolute;top:0;right:auto;left:0;width:112px;height:112px}
.keyboard-friends .little-dog{left:85px}
.little-dog .kitten-frame{background-image:url("assets/puppy.png")}
@media(max-width:700px){.hero-body{display:flex;flex-direction:column;gap:12px;align-items:stretch}.hero-message{display:contents}.hero h1{margin:14px 0 0;order:0}.hero-friends{order:1;width:230px;max-width:75%;align-self:center;margin:-8px 0 -5px}.hero-copy{order:2}.hero-actions{gap:20px}.button{gap:28px}.keyboard-friends{top:-43px;right:0;width:155px;height:90px}.keyboard-friends .little-cat{width:90px;height:90px}.keyboard-friends .little-dog{left:68px}}

/* Native exported postcards, presented as two small keepsakes on the existing paper desk. */
.footprints-section{max-width:1100px;margin:100px auto;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr);gap:55px;align-items:center;padding-top:60px;border-top:1px solid var(--line);scroll-margin-top:35px}.footprints-copy h2{font:500 40px/1.45 var(--serif);margin:16px 0 22px}.footprints-copy h2 em{font-style:normal;color:var(--brown)}.footprints-intro{font-size:14px;line-height:1.9;color:var(--muted)}.footprints-details{margin:28px 0}.footprints-details>div{margin:0 0 18px}.footprints-details dt{font-size:13px;font-weight:600;margin-bottom:6px}.footprints-details dd{font-size:12px;line-height:1.8;color:var(--muted);margin:0}.footprints-privacy{font-size:11px;color:var(--brown);margin:24px 0 10px}.footprints-copy small{display:block;font-size:10px;line-height:1.8;color:var(--muted);max-width:310px}.footprints-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;font-size:11px;color:var(--muted)}.footprints-periods{display:flex;gap:4px;padding:4px;background:#eae4d9;border-radius:8px}.footprints-periods button{border:0;background:transparent;border-radius:5px;padding:8px 16px;font:inherit;color:var(--muted);cursor:pointer}.footprints-periods button[aria-pressed=true]{background:#faf7f0;color:var(--ink);box-shadow:0 1px 3px #44372b15}.footprints-periods button:focus-visible{outline:2px solid var(--brown);outline-offset:3px}.footprints-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;padding:12px 0 0}.footprints-cards figure{margin:0;min-width:0}.footprints-cards figure:first-child{transform:rotate(-3deg)}.footprints-cards figure:last-child{transform:rotate(3deg);margin-top:40px}.footprints-cards img{display:block;width:100%;height:auto;border-radius:8px;box-shadow:0 12px 30px #49382216;border:1px solid #6c523310;background:#faf3e8}.footprints-cards figcaption{font-size:10px;color:var(--muted);text-align:center;margin-top:15px}.footprints-period-note{font-size:12px;color:var(--ink);margin:30px 0 8px;text-align:center;min-height:22px}.footprints-caption{font-size:10px;color:var(--muted);text-align:center;line-height:1.8}
@media(max-width:1150px){.footprints-section{margin:80px 30px;gap:30px}}
@media(max-width:700px){.nav nav{gap:12px}.nav .wordmark{font-size:19px}.nav nav a{font-size:11px}.nav nav a[href="#your-desk"]{display:none}.footprints-section{grid-template-columns:1fr;gap:30px;margin:60px 25px;padding-top:38px}.footprints-copy h2{font-size:35px;margin-bottom:18px}.footprints-intro{font-size:13px}.footprints-details{margin:22px 0}.footprints-cards{gap:12px}.footprints-cards figure:last-child{margin-top:25px}.footprints-toolbar{margin-bottom:16px}.footprints-periods button{padding:9px 15px}.footprints-period-note{font-size:11px;margin-top:26px}}
