@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap";:root{color:#5a3940;font-synthesis:none;background:#fff3f4;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 15% 5%,#fff 0 4%,#0000 20%),linear-gradient(135deg,#fff7ef,#ffe8ed 50%,#fbe4e7);min-width:320px;min-height:100vh;margin:0}button{font:inherit;cursor:pointer;border:0}button:focus-visible{outline-offset:3px;outline:3px solid #d85875}.app{min-height:100dvh;padding:20px clamp(16px,3vw,46px);position:relative;overflow:hidden}.home{grid-template-rows:auto 1fr auto;align-items:center;gap:24px;max-width:1080px;margin:auto;display:grid}.home-header,.game-header{z-index:2;justify-content:space-between;align-items:center;gap:16px;display:flex;position:relative}.brand{color:#6f3948;align-items:center;gap:10px;display:flex}.brand>span{filter:drop-shadow(0 3px 2px #e9b2ba);font-size:30px}.brand b{font-size:16px;display:block}.brand small,.game-header small{color:#9c6b76;margin-top:2px;font-size:12px;display:block}.icon-button{color:#9a5969;background:#fffaf5;border-radius:50%;width:42px;height:42px;font-size:22px;box-shadow:0 4px 12px #b86d7d22}.card{background:#fffdf9e8;border:1px solid #fff;border-radius:28px;box-shadow:0 14px 40px #ad667229,inset 0 1px #fff}.welcome{text-align:center;width:min(610px,100%);margin:auto;padding:36px 42px 32px}.mascot-large{filter:drop-shadow(0 7px 5px #d597a866);margin-bottom:12px;font-size:52px;line-height:1}.eyebrow{color:#c5677c;text-transform:uppercase;letter-spacing:1.15px;margin:0 0 7px;font-size:12px;font-weight:700}.welcome h1,.win-card h1{color:#70404a;letter-spacing:-2.5px;margin:0 0 18px;font-family:Fraunces,Georgia,serif;font-size:clamp(38px,5vw,60px);line-height:.98}.intro{color:#89636b;max-width:450px;margin:0 auto 23px;font-size:15px;line-height:1.55}.play-button{color:#fff;background:#d95676;border-radius:17px;min-height:54px;padding:0 23px;font-weight:700;transition:transform .15s,box-shadow .15s;box-shadow:0 7px #b84561,0 11px 18px #c74b6638}.play-button span{margin-left:16px;font-size:20px}.play-button:hover{transform:translateY(-2px)}.play-button:active{transform:translateY(5px);box-shadow:0 2px #b84561}.continue-button,.text-button{color:#ad5f72;text-underline-offset:4px;background:0 0;margin:18px auto 0;padding:8px 12px;font-weight:600;text-decoration:underline;display:block}.how{color:#89636b;justify-content:space-between;gap:10px;width:min(620px,100%);margin:auto;padding:15px 24px;font-size:13px;display:flex}.berry{color:#e79aa9;opacity:.55;font-size:26px;position:absolute}.berry-a{top:21%;left:9%}.berry-b{top:32%;right:12%}.berry-c{bottom:17%;left:16%}.game{grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:10px;max-width:1280px;margin:auto;display:grid}.back-button{color:#8c5b68;background:0 0;padding:9px 0;font-weight:700}.game-header>div:nth-child(2){text-align:center}.game-header b{color:#70404a;font-family:Fraunces,serif;font-size:20px}.timer{text-align:right;color:#9a5969;font-variant-numeric:tabular-nums;min-width:84px;font-weight:700}.tray-area{background:#fff7ef;border:1px solid #f5c7ce;border-radius:22px;justify-self:center;width:min(620px,100%);padding:9px 13px 10px;box-shadow:0 7px 16px #b7646b1d,inset 0 2px #fff}.tray-heading{color:#915568;justify-content:space-between;padding:0 4px 5px;font-size:13px;display:flex}.tray-heading span{font-variant-numeric:tabular-nums;color:#d15775;font-weight:700}.tray-area>small{text-align:center;color:#ad7a80;padding-top:4px;font-size:11px;display:block}.tray{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.tray-slot{background:#fffdf9;border:2px dashed #efb9c1;border-radius:13px;place-items:center;height:65px;display:grid;position:relative}.tray-slot:empty:after{content:"♡";color:#efc3c9;font-size:18px}.tray-tile{background:linear-gradient(145deg,#fffefa,#fff6eb);border:1px solid #fff;border-radius:10px;place-items:center;width:92%;height:92%;animation:.28s cubic-bezier(.2,.8,.3,1.25) settle;display:grid;box-shadow:0 2px #dab8a9,0 5px 7px #9b677433}.mini-tray{gap:5px;width:min(290px,100%);margin:20px auto}.mini-tray .tray-tile{width:100%;height:58px}.board-wrap{place-self:center;place-items:center;width:min(100%,1000px);min-height:0;padding:clamp(7px,1.5vw,18px);display:grid;position:relative}.board{filter:drop-shadow(0 22px 20px #aa667021);width:100%;max-height:56vh;position:relative}.board:before{content:"";background:linear-gradient(145deg,#ffecef,#fff9f3);border:1px solid #fffdf8;border-radius:34px;position:absolute;inset:5% 2%;box-shadow:inset 0 0 0 1px #eeb5bf55}.tile{aspect-ratio:.88;color:#a23d57;background:linear-gradient(145deg,#fffefa,#fff6eb);border:1px solid #fff;border-radius:clamp(7px,1vw,14px);place-items:center;width:14.2%;padding:2px;transition:transform .14s,filter .14s,box-shadow .14s;display:grid;position:absolute;box-shadow:0 3px #dab8a9,0 7px 10px #9b67743b}.tile.z1{transform:translate(2%,-5%)}.tile.z2{transform:translate(4%,-10%)}.tile:hover{filter:brightness(1.06);transform:translateY(-5px);box-shadow:0 5px #dab8a9,0 12px 15px #9b677452}.tile.z1:hover{transform:translate(2%,-10%)}.tile.z2:hover{transform:translate(4%,-15%)}.tile.pulling{pointer-events:none;animation:.24s ease-in forwards pull}.tile.hinted{animation:1s ease-in-out infinite pulse}.tile.blocked{filter:brightness(.92);animation:.35s wobble}.tile.free{box-shadow:0 3px #dab8a9,0 7px 10px #9b67743b,0 0 0 2px #e89eae99}.tile-corner{color:#dda3ab;font-size:clamp(8px,.85vw,12px);font-weight:700;position:absolute;top:4%;right:7%}.bamboo{grid-template-columns:repeat(2,1fr);gap:1px;font-size:clamp(15px,2.3vw,32px);line-height:.85;display:grid}.bamboo i{font-style:normal}.dots{color:#d95265;text-shadow:3px 2px #f5c353;grid-template-columns:repeat(2,1fr);font-size:clamp(19px,3vw,41px);line-height:.78;display:grid}.character,.wind,.dragon,.season{font-family:serif;font-size:clamp(34px,5.7vw,78px);font-weight:700;line-height:1}.character{color:#4769a5}.wind{color:#477d76}.dragon{color:#c63f55}.flower{color:#d6507c;text-shadow:2px 2px #ffc6d4;font-size:clamp(42px,7vw,96px);line-height:1}.season{color:#605a9d}.tray-tile .bamboo{font-size:27px}.tray-tile .dots{font-size:34px}.tray-tile .character,.tray-tile .wind,.tray-tile .dragon,.tray-tile .season{font-size:52px}.tray-tile .flower{font-size:62px}.board-mascot{filter:drop-shadow(0 4px 3px #bf77885a);font-size:clamp(32px,4vw,54px);position:absolute;bottom:0;right:0}.board-mascot.happy{animation:.5s ease-in-out 2 bounce}.status{text-align:center;color:#a45b6d;min-height:22px;margin:0;font-size:14px;font-weight:600}.toolbar{justify-content:center;gap:12px;padding-bottom:10px;display:flex}.toolbar button,.soft-button{color:#855460;background:#fff9f3;border-radius:16px;min-width:103px;padding:12px 13px;font-weight:700;box-shadow:0 4px 12px #a8667120}.toolbar button:hover,.soft-button:hover{background:#fff;transform:translateY(-2px)}.toolbar span{color:#d65675;margin-bottom:4px;font-size:20px;line-height:17px;display:block}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#74434b4d;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{text-align:center;width:min(390px,100%);padding:28px}.modal h2{color:#70404a;margin:0 0 22px;font-family:Fraunces,serif;font-size:30px}.modal .play-button,.modal .soft-button{width:100%;margin:6px 0}.settings{text-align:left}.settings-backdrop{z-index:30}.modal-heading{justify-content:space-between;align-items:start;margin-bottom:10px;display:flex}.modal-heading h2{margin:0}.setting{text-align:left;color:#80525c;background:0 0;border-top:1px solid #efdbd5;justify-content:space-between;gap:15px;width:100%;padding:15px 0;display:flex}.setting b,.setting small{display:block}.setting small{color:#a47a80;margin-top:3px;font-size:12px}.setting i{background:#eadadd;border-radius:20px;flex:none;width:39px;height:23px;margin-top:5px;padding:3px}.setting i em{background:#fff;border-radius:50%;width:17px;height:17px;transition:all .2s;display:block;box-shadow:0 1px 3px #6d455755}.setting i.on{background:#d95676}.setting i.on em{transform:translate(16px)}.complete{text-align:center;place-items:center;display:grid}.win-card{z-index:1;width:min(520px,100%);padding:40px}.win-copy{color:#946a70;margin-top:-7px}.results{grid-template-columns:repeat(4,1fr);gap:7px;padding:25px 0;display:grid}.results span{color:#a17279;font-size:11px}.results b{color:#7a4651;font-family:Fraunces,serif;font-size:25px;display:block}.confetti{letter-spacing:1.4vw;color:#dd6f88;font-size:clamp(24px,5vw,56px);animation:3.5s ease-in-out infinite float;position:absolute;top:12%}@keyframes pulse{50%{transform:translateY(-4px)scale(1.04);box-shadow:0 0 0 5px #f3b8c855,0 8px 14px #b1516455}}@keyframes wobble{25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}@keyframes pull{25%{transform:translateY(-12px)scale(1.05)}to{opacity:0;transform:translateY(-55px)scale(.6)}}@keyframes settle{0%{opacity:.5;transform:translateY(-10px)scale(1.08)}75%{transform:translateY(2px)scale(.98)}to{opacity:1;transform:none}}@keyframes bounce{50%{transform:translateY(-11px)}}@keyframes float{50%{transform:translateY(15px)rotate(4deg)}}.reduce-motion *{transition:none!important;animation:none!important}@media (width<=650px){.app{padding:13px 10px}.home{gap:16px}.welcome{padding:27px 21px}.how{gap:3px;padding:13px;font-size:11px}.berry{display:none}.game{gap:7px}.game-header b{font-size:17px}.back-button span{display:none}.timer{min-width:70px;font-size:13px}.tray-area{border-radius:17px;padding:7px 8px}.tray-slot{border-radius:10px;height:54px}.tray{gap:5px}.tray-tile .bamboo{font-size:21px}.tray-tile .dots{font-size:27px}.tray-tile .character,.tray-tile .wind,.tray-tile .dragon,.tray-tile .season{font-size:40px}.tray-tile .flower{font-size:49px}.board-wrap{padding:2px}.board{width:100%;max-height:none}.tile{border-radius:7px;box-shadow:0 2px #dab8a9,0 4px 7px #9b67743b}.toolbar{gap:6px}.toolbar button{border-radius:13px;flex:1;min-width:0;padding:9px 3px;font-size:11px}.toolbar span{font-size:17px}.board-mascot{bottom:-4%;right:1%}.results b{font-size:21px}.win-card{padding:30px 18px}.large-tiles .board{width:112%;max-width:none}.large-tiles .board-wrap{overflow:hidden}}.counter{color:var(--accent);background:var(--accent-bg);border:2px solid #0000;border-radius:5px;margin-bottom:24px;padding:5px 10px;font-size:16px;transition:border-color .3s}.counter:hover{border-color:var(--accent-border)}.counter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero{position:relative}.hero .base,.hero .framework,.hero .vite{margin:0 auto;inset-inline:0}.hero .base{z-index:0;width:170px;position:relative}.hero .framework,.hero .vite{position:absolute}.hero .framework{z-index:1;height:28px;top:34px;transform:perspective(2000px)rotate(300deg)rotateX(44deg)rotateY(39deg)scale(1.4)}.hero .vite{z-index:0;width:auto;height:26px;top:107px;transform:perspective(2000px)rotate(300deg)rotateX(40deg)rotateY(39deg)scale(.8)}#center{flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:25px;display:flex}@media (width<=1024px){#center{gap:18px;padding:32px 20px 24px}}#next-steps{border-top:1px solid var(--border);text-align:left;display:flex}#next-steps>div{flex:1 1 0;padding:32px}@media (width<=1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{width:22px;height:22px;margin-bottom:16px}@media (width<=1024px){#next-steps{text-align:center;flex-direction:column}}#docs{border-right:1px solid var(--border)}@media (width<=1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);background:var(--social-bg);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:16px;text-decoration:none;transition:box-shadow .3s;display:flex}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{width:18px;height:18px}@media (width<=1024px){#next-steps ul{flex-wrap:wrap;justify-content:center;margin-top:20px}#next-steps ul li{flex:calc(50% - 8px)}#next-steps ul a{box-sizing:border-box;justify-content:center;width:100%}}#spacer{border-top:1px solid var(--border);height:88px}@media (width<=1024px){#spacer{height:48px}}.ticks{width:100%;position:relative}.ticks:before,.ticks:after{content:"";border:5px solid #0000;position:absolute;top:-4.5px}.ticks:before{border-left-color:var(--border);left:0}.ticks:after{border-right-color:var(--border);right:0}
