.mg{background:#fff;border-radius:28px;box-shadow:0 6px 0 #e2eae5;padding:24px;margin-bottom:26px;text-align:center}
.mg-bar{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:16px}
.mg-bar button,.mg-pal button{font:inherit;font-weight:800;border:0;border-radius:14px;padding:10px 16px;min-height:44px;cursor:pointer;background:#e7f4ee;color:#105b52}
.mg-bar button[aria-pressed=true]{background:#187f73;color:#fff}
.mg-msg{min-height:30px;font-weight:800;color:#105b52;margin:12px 0 0;font-size:18px}
.sdk{display:inline-grid;gap:0;border:4px solid #193c36;border-radius:12px;overflow:hidden;background:#193c36}
.sdk button{width:min(17vw,76px);height:min(17vw,76px);border:1px solid #c8d9d3;background:#fff;font:800 clamp(22px,5vw,36px)/1 ui-rounded,system-ui,sans-serif;color:#187f73;cursor:pointer;padding:0}
.sdk.n6 button{width:min(13vw,60px);height:min(13vw,60px);font-size:clamp(18px,4.4vw,28px)}
.sdk button.fx{background:#eef6f3;color:#193c36;cursor:default}
.sdk button.sel{outline:4px solid #f5bf4f;outline-offset:-4px}
.sdk button.br{border-right:3px solid #193c36}.sdk button.bb{border-bottom:3px solid #193c36}
.mg-pal{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px}
.mg-pal button{font-size:26px;min-width:54px;background:#fff8e6}
.mem{display:grid;gap:10px;max-width:560px;margin:auto}
.mem button{aspect-ratio:1;border:0;border-radius:18px;font-size:clamp(28px,7vw,46px);cursor:pointer;background:linear-gradient(135deg,#187f73,#3fa9f5);color:transparent;box-shadow:0 4px 0 #105b52}
.mem button.up,.mem button.ok{background:#fff8e6;color:#000;box-shadow:0 4px 0 #f1e3bb}
.mem button.ok{background:#e1f6e8;cursor:default}
.hn{display:flex;gap:12px;justify-content:center;align-items:flex-end;max-width:640px;margin:auto}
.hn button{flex:1;height:230px;border:0;border-radius:18px;background:#f2f8f6;cursor:pointer;display:flex;flex-direction:column-reverse;align-items:center;padding:10px 4px;position:relative}
.hn button::before{content:"";position:absolute;bottom:10px;top:20px;left:50%;width:8px;margin-left:-4px;background:#c5a27a;border-radius:4px}
.hn button.sel{background:#fff2cc}
.hn i{display:block;height:26px;border-radius:13px;margin-top:4px;position:relative;z-index:1}
.pyr{display:flex;flex-direction:column;gap:6px;align-items:center}
.pyr div{display:flex;gap:6px}
.pyr input,.pyr span{width:min(15vw,64px);height:min(12vw,52px);border-radius:12px;border:2px solid #c8d9d3;text-align:center;font:800 22px ui-rounded,system-ui,sans-serif;display:grid;place-items:center;box-sizing:border-box}
.pyr span{background:#eef6f3;border-color:#eef6f3}
.pyr input.bad{background:#ffe3dc}.pyr input.good{background:#e1f6e8}
.r8shelf{max-width:1180px;margin:10px auto 26px;padding:0 20px;box-sizing:border-box}
.r8shelf h2{font-size:24px;margin:22px 0 12px;color:#193c36}
.r8row{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.r8c{display:flex;flex-direction:column;background:#fff;border-radius:20px;overflow:hidden;text-decoration:none;color:#193c36;box-shadow:0 5px 0 #e2eae5;transition:transform .15s}
.r8c:hover{transform:translateY(-3px)}
.r8c img{width:100%;height:150px;object-fit:cover;object-position:top;display:block;background:#e4f2ec}
.r8c span{padding:12px 14px 16px;display:flex;flex-direction:column;gap:2px}
.r8c small{color:#2d7a6c;font-weight:800;font-size:12px}.r8c strong{font-size:18px}.r8c em{font-style:normal;font-size:13px;color:#4f6c64}
.tag{display:inline-block;align-self:flex-start;font-size:12px;font-weight:800;border-radius:999px;padding:3px 10px;background:#fff2cc;color:#7a5a00}
.tag.new{background:#ffe0ea;color:#a0254f}.tag.soon{background:#e8e6ff;color:#4b3aa8}
.pc{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.pc article{background:#fff;border-radius:22px;box-shadow:0 6px 0 #e2eae5;overflow:hidden;display:flex;flex-direction:column}
.pc article img{width:100%;height:auto;display:block}
.pc .b{padding:16px 18px 20px;display:flex;flex-direction:column;gap:6px;flex:1}
.pc h3{margin:0;font-size:21px}.pc h3 a{color:#193c36;text-decoration:none}.pc p{margin:0;color:#4f6c64;font-size:14px}
.pc .pr{font-size:24px;font-weight:900;color:#193c36;margin-top:auto}
.pc .buy{display:inline-flex;justify-content:center;background:#187f73;color:#fff;font-weight:800;text-decoration:none;border-radius:14px;padding:12px;box-shadow:0 4px 0 #105b52}
.pc .soonb{margin-top:auto;background:#efeefe;color:#4b3aa8;font-weight:800;border-radius:14px;padding:12px;text-align:center;text-decoration:none}
.pc article.bundle{outline:3px solid #f5bf4f}
