:root{--red:#b3261e;--red2:#d94b3f;--green:#14532d;--green2:#1f7a45;--gold:#c99a2e;--cream:#fbf7f0;--paper:#fff;--ink:#1f2328;--muted:#5d646d;--line:#e8e1d5;--r:14px;color:var(--ink);background:var(--cream);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55}*{box-sizing:border-box}body{margin:0}a{color:var(--green2)}img,svg{max-width:100%}header.site{z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;border-bottom:3px solid var(--red);background:#14532df7;position:sticky;top:0}header.site .in{white-space:nowrap;align-items:center;gap:1.2rem;max-width:1180px;margin:0 auto;padding:.7rem 1.2rem;display:flex;overflow-x:auto}header.site a{color:#e9f5ec;font-size:.92rem;font-weight:600;text-decoration:none}header.site a:hover{color:#fff}header.site .logo{color:#fff;margin-right:auto;font-size:1.08rem}main{max-width:1180px;margin:0 auto;padding:1.4rem 1.2rem 2rem}.hero{text-align:center;padding:.6rem 0 1.2rem}.hero h1{color:var(--red);letter-spacing:-.01em;margin:.2rem 0 .5rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.15}.hero p{color:var(--muted);max-width:720px;margin:0 auto;font-size:1.04rem}.badges{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.8rem;display:flex}.badges span{border:1px solid var(--line);color:var(--green);background:#fff;border-radius:99px;padding:.2rem .7rem;font-size:.8rem}.crumbs{color:var(--muted);margin-bottom:.3rem;font-size:.85rem}.crumbs a{color:var(--muted)}.tool{grid-template-columns:minmax(300px,380px) 1fr;align-items:start;gap:1.2rem;display:grid}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 1px 2px #0000000a,0 8px 24px #5a3b1012}.stage{padding:1rem 1.1rem;position:sticky;top:4.2rem}.step{border-bottom:1px solid var(--line);padding:.9rem 0}.step:last-child{border:0}.step-h{align-items:center;gap:.5rem;margin-bottom:.55rem;font-weight:700;display:flex}.num{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:1.5rem;height:1.5rem;font-size:.8rem;display:grid}.count{color:var(--green2);background:#e9f5ec;border-radius:99px;margin-left:auto;padding:.1rem .55rem;font-size:.78rem;font-weight:600}.count.bad{color:var(--red);background:#fde8e6}.chips{flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem;display:flex}.chip{border:1px solid var(--line);color:var(--green);cursor:pointer;background:#fff8ee;border-radius:99px;padding:.25rem .7rem;font:600 .8rem inherit}.chip:hover{border-color:var(--green2)}.chip.ghost{color:var(--muted);background:#fff}textarea,input,select{width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid #d9d2c6;border-radius:10px;padding:.55rem .65rem;font-size:.95rem}textarea{resize:vertical;min-height:9.5rem;line-height:1.45}textarea:focus,input:focus,select:focus{border-color:var(--green2);outline:2px solid #1f7a4555}.hint{color:var(--muted);margin:.35rem 0 0;font-size:.8rem}.issues{color:var(--red);margin:.3rem 0 0;padding-left:1.1rem;font-size:.8rem}.f{color:#3a3f45;margin:.5rem 0;font-size:.85rem;font-weight:600;display:block}.f input,.f select{margin-top:.25rem}.f small{color:var(--muted);font-weight:400}.row{gap:.7rem;display:flex}.row .f{flex:1;min-width:0}.sub{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:.4rem 0;font-size:.78rem}.opts{grid-template-columns:repeat(4,1fr);gap:.45rem;margin-bottom:.4rem;display:grid}.opt{border:2px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:10px;flex-direction:column;align-items:center;gap:.2rem;padding:.3rem;font:600 .72rem inherit;transition:all .15s;display:flex}.opt svg{border-radius:4px;width:100%;height:auto}.themes .opt svg{aspect-ratio:612/792;box-shadow:0 1px 3px #0002}.grids .opt svg{width:44px}.opt:hover{border-color:#b7d9c3}.opt.on{border-color:var(--green2);box-shadow:0 0 0 3px #1f7a4522}.tabs{background:#f3eee5;border-radius:12px;gap:.3rem;margin-bottom:.7rem;padding:.25rem;display:flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;padding:.5rem;font:600 .9rem inherit}.tab.on{color:var(--green);background:#fff;box-shadow:0 1px 3px #0002}.bar{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.4rem;display:flex}.seg{border:1px solid var(--line);border-radius:9px;display:inline-flex;overflow:hidden}.segb{cursor:pointer;color:var(--muted);background:#fff;border:0;padding:.35rem .8rem;font:600 .82rem inherit}.segb.on{background:var(--green);color:#fff}.btn{background:var(--red);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:.7rem 1.1rem;font:700 .95rem inherit;box-shadow:0 2px #7f1a14}.btn:hover{background:var(--red2)}.btn small{opacity:.85;font-weight:500}.btn.ghost{color:var(--green);box-shadow:none;background:#fff;border:1px solid #cfe3d6}.btn.ghost:hover{background:#f1f8f3}.btn.sm{padding:.4rem .75rem;font-size:.84rem}.btn[aria-pressed=true]{border-color:var(--gold);color:#7a5a10;background:#fff4d6}.actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:.6rem;margin-top:.9rem;padding-top:.9rem;display:flex}.actions .btn:first-child{flex:1}.status{color:var(--green2);min-height:1.3em;margin:.2rem 0 .5rem;font-size:.88rem}.play{grid-template-columns:1fr 190px;align-items:start;gap:1rem;display:grid}.board{--n:15;grid-template-columns:repeat(var(--n),1fr);aspect-ratio:1;border:2px solid var(--green);touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:#fff;border-radius:12px;width:100%;max-width:600px;padding:6px;display:grid}.cell{font:700 clamp(.66rem,calc(520px/var(--n)/1.9),1.5rem) ui-monospace,"SF Mono",Menlo,monospace;cursor:pointer;color:#222;border-radius:50%;justify-content:center;align-items:center;display:flex}.board[data-grid=boxes] .cell{border-radius:0;box-shadow:inset 0 0 0 .5px #d5d5d5}.board[data-grid=rounded] .cell{background:#faf6ee;border-radius:22%;margin:1px}.board.large .cell{font-size:clamp(.9rem,calc(560px/var(--n)/1.4),2.2rem)}.cell.ans{background:#fff1c2}.cell.found{color:#0f3d22;background:#bfe8cc!important}.cell.sel{background:#fbc9c4!important}.cell.tap{outline:3px solid var(--red);outline-offset:-3px}.wordlist{columns:1;margin:0;padding:0;font-size:.92rem;font-weight:600;list-style:none}.wordlist li{align-items:center;gap:.45rem;padding:.18rem 0;display:flex}.cb{border:1.5px solid #8a8f96;border-radius:3px;flex:none;width:.95rem;height:.95rem}.wordlist li.done{color:#9aa0a6;text-decoration:line-through}.wordlist li.done .cb{background:var(--green2);border-color:var(--green2)}.wordlist .hint{color:var(--red);font-style:italic;font-weight:500}.sheet{background:#efe9df;border-radius:10px;justify-content:center;padding:1rem;display:flex}.sheet svg{border-radius:2px;width:100%;max-width:520px;box-shadow:0 4px 18px #0003}section.block>h2{color:var(--green);margin:0 0 .3rem;font-family:Georgia,serif;font-size:clamp(1.35rem,3vw,1.8rem)}section.block>p.sub2{color:var(--muted);margin:0 0 1.2rem}.cards{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}.card{border:1px solid var(--line);color:inherit;background:#fff;border-radius:12px;flex-direction:column;text-decoration:none;transition:all .15s;display:flex;overflow:hidden}.card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #5a3b101c}.card img{aspect-ratio:612/792;object-fit:cover;object-position:top;border-bottom:1px solid var(--line);background:#f4efe6;width:100%;display:block}.card h3{color:var(--ink);margin:.15rem 0;font-size:.98rem}.card p{color:var(--muted);margin:.2rem 0;font-size:.82rem}.tag{text-transform:uppercase;letter-spacing:.04em;color:var(--red);font-size:.7rem;font-weight:700;display:inline-block}.steps{counter-reset:s;grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.steps li{border:1px solid var(--line);background:#fff;border-radius:12px;padding:1rem 1.1rem;list-style:none}.steps li b{color:var(--green);margin-bottom:.2rem;display:block}.steps li:before{counter-increment:s;content:counter(s);background:var(--red);color:#fff;border-radius:50%;place-items:center;width:1.7rem;height:1.7rem;margin-bottom:.4rem;font-weight:700;display:inline-grid}.steps{margin:0;padding:0}.feat{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.feat div{border:1px solid var(--line);background:#fff;border-radius:12px;padding:1rem}.feat b{margin-bottom:.2rem;display:block}.feat p{color:var(--muted);margin:0;font-size:.9rem}.faq details{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:.5rem;padding:.8rem 1rem}.faq summary{cursor:pointer;font-weight:700}.faq p{color:#444;margin:.5rem 0 0}.links{flex-wrap:wrap;gap:.5rem;display:flex}.links a{border:1px solid var(--line);background:#fff;border-radius:99px;padding:.35rem .85rem;font-size:.88rem;font-weight:600;text-decoration:none}footer{border-top:1px solid var(--line);text-align:center;color:var(--muted);margin-top:3rem;padding:2rem 1rem;font-size:.85rem}@media (width<=900px){.tool{grid-template-columns:1fr}.stage{order:-1;position:static}.steps{grid-template-columns:1fr}}@media (width<=560px){main{padding:.8rem}.hero{padding:0 0 .8rem}.hero p{font-size:.92rem}.badges{display:none}.play{grid-template-columns:1fr}.wordlist{columns:2}.controls,.stage{padding-left:.8rem;padding-right:.8rem}.row{flex-direction:column;gap:0}.opts{gap:.3rem}.btn{padding:.65rem .9rem}.sheet{padding:.5rem}}header.site .logo{align-items:center;gap:.5rem;display:flex}header.site .logo img{background:#fff;border-radius:8px;width:34px;height:34px;padding:1px}footer img{vertical-align:middle;margin-right:.3rem}.sharebox{flex-direction:column;gap:.3rem;margin-top:.6rem;display:flex}.sharebox input{border:1px solid var(--line);border-radius:8px;width:100%;padding:.5rem;font-size:.85rem}.sharebox span{color:var(--green2);font-size:.85rem}.prose p{max-width:820px}@media (width<=640px){header.site .logo span{display:none}header.site .in{gap:.9rem}}header.site .logo,header.site .logo img{flex-shrink:0}header.site .logo img{min-width:34px;max-width:none}.playhint{color:#3a3f45;background:#fff8ee;border:1px solid #f0dfc3;border-radius:10px;margin:.2rem 0 .5rem;padding:.45rem .7rem;font-size:.86rem;line-height:1.4}.status{font-weight:700}.boardwrap{width:100%;max-width:600px;position:relative}.cell.wrong{color:#7f1a14;background:#f7b4ad!important}.cell.demo-hl{transition:background .1s;background:#ffe08a!important}.board.shake{animation:.38s shake}@keyframes shake{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.hand{pointer-events:none;filter:drop-shadow(0 2px 3px #0005);z-index:3;margin:-.2rem 0 0 -.55rem;font-size:2rem;position:absolute;top:0;left:0}.demo{color:#fff;z-index:4;background:#14532df2;border-radius:12px;align-items:center;gap:.7rem;width:max-content;max-width:94%;padding:.55rem .7rem .55rem .9rem;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #0004}.demo[hidden],.hand[hidden]{display:none}.demo p{margin:0;font-size:.86rem;font-weight:600}.toast{opacity:0;pointer-events:none;color:#fff;z-index:5;white-space:nowrap;text-overflow:ellipsis;background:#1f2328;border-radius:99px;max-width:94%;padding:.35rem .9rem;font-size:.86rem;font-weight:600;transition:all .2s;position:absolute;top:10px;left:50%;overflow:hidden;transform:translate(-50%,-6px)}.toast.show{opacity:1;transform:translate(-50%)}.toast.ok{background:var(--green2)}.toast.bad{background:var(--red)}.cards{grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr))}.card img{object-fit:contain;height:auto}.card .b{flex:1}.card h3,.card p{overflow-wrap:anywhere}@media (width<=560px){.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.card .b{padding:.55rem .6rem}.card h3{font-size:.9rem}.playhint{font-size:.8rem}}.demo{width:auto;max-width:100%;margin:.55rem auto 0;position:static;transform:none}.demo .btn{white-space:nowrap;flex:none}:root{--fs-h1:clamp(1.9rem,3.6vw,2.75rem);--fs-h2:clamp(1.45rem,2.6vw,1.875rem);--fs-h3:1.125rem;--fs-body:1rem;--fs-sm:.875rem;--fs-xs:.8125rem;--s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--s7:3rem;--s8:4.5rem;--prose:720px;font-size:16px;line-height:1.6}.ic{vertical-align:-.2em;stroke-width:2px;flex:none;width:1.15em;height:1.15em;display:inline-block}body{font-size:var(--fs-body)}h1,h2,h3{text-wrap:balance;line-height:1.2}.hero{padding:var(--s5) 0 var(--s6)}.hero h1{font-size:var(--fs-h1);margin:0 auto var(--s3);max-width:900px}.hero p{max-width:640px;font-size:1.0625rem;line-height:1.6}.badges{gap:var(--s2);margin-top:var(--s4)}.badges span{font-size:var(--fs-xs);align-items:center;gap:.35rem;padding:.3rem .8rem;font-weight:600;display:inline-flex}.badges .ic{stroke-width:2.5px;width:.95em;height:.95em}.crumbs{font-size:var(--fs-sm)}.btn{justify-content:center;align-items:center;gap:var(--s2);min-height:46px;padding:0 1.15rem;font-size:.9375rem;line-height:1.2;display:inline-flex}.btn.sm{min-height:36px;font-size:var(--fs-sm);gap:.4rem;padding:0 .8rem}.btn small{font-size:.8125rem}.tab{justify-content:center;align-items:center;gap:var(--s2);min-height:40px;font-size:.9375rem;display:inline-flex}.bar{gap:var(--s2);margin-bottom:var(--s3)}.actions{gap:var(--s3);margin-top:var(--s4);padding-top:var(--s4)}.playhint{gap:var(--s2);font-size:var(--fs-sm);margin:0 0 var(--s3);align-items:flex-start;padding:.6rem .8rem;line-height:1.5;display:flex}.playhint .ic{color:var(--red);margin-top:.15em}.status{font-size:var(--fs-sm);margin:0 0 var(--s3);align-items:center;gap:.4rem;display:flex}.status .ic{color:var(--gold)}.sharebox span{align-items:center;gap:.35rem;display:inline-flex}.toast{align-items:center;gap:.4rem;padding:.4rem 1rem .4rem .8rem;display:inline-flex}.hand{font-size:inherit;margin:-4px 0 0 -12px}.hand-ic{color:#1f2328;fill:#fff;stroke-width:1.6px;width:34px;height:34px}.tool{gap:var(--s5)}.controls{padding:var(--s2) var(--s5)}.stage{padding:var(--s5)}.step{padding:var(--s4) 0}.step-h{margin-bottom:var(--s3);font-size:1rem}.hint,.issues{font-size:var(--fs-xs);line-height:1.5}main{padding:var(--s5) 1.5rem var(--s6)}section.block{margin:var(--s8) 0 0}section.block>h2{font-size:var(--fs-h2);text-align:center;margin:0 0 var(--s2)}section.block>p.sub2{text-align:center;max-width:var(--prose);margin:0 auto var(--s5);font-size:1.0625rem}section.block:not(.prose)>h2:not(:has(+.sub2)){margin-bottom:var(--s5)}section.prose{max-width:var(--prose);margin-left:auto;margin-right:auto}section.prose>h2{text-align:left;margin-bottom:var(--s3)!important}.prose p,.prose li{color:#30353b;max-width:none;font-size:1.0625rem;line-height:1.7}.prose p{margin:0 0 var(--s4)}.prose ul,.prose ol{margin:0 0 var(--s4);padding-left:1.25rem}.cards{gap:var(--s5)}.card .b{padding:var(--s4)}.card h3{margin:var(--s1) 0;font-size:1.0625rem}.card p{font-size:var(--fs-sm);margin:0}.steps{gap:var(--s5)}.steps li{padding:var(--s5);color:var(--muted);font-size:.9375rem;line-height:1.6}.steps li b{font-size:var(--fs-h3);color:var(--green);margin-bottom:var(--s2)}.feat{gap:var(--s5)}.feat div{padding:var(--s5)}.feat b{font-size:var(--fs-h3);margin-bottom:var(--s2)}.feat p{font-size:.9375rem;line-height:1.6}.fi{width:44px;height:44px;color:var(--green);margin-bottom:var(--s3);background:#e9f5ec;border-radius:12px;place-items:center;display:inline-grid}.fi .ic{width:22px;height:22px}.faq{max-width:var(--prose);margin-left:auto;margin-right:auto}.faq details{padding:var(--s4) var(--s5);margin-bottom:var(--s3)}.faq summary{font-size:1.0625rem}.faq p{line-height:1.7}.links{justify-content:center;gap:var(--s2)}.links a{font-size:var(--fs-sm);padding:.45rem 1rem}footer{font-size:var(--fs-sm);margin-top:var(--s8)}@media (width<=900px){.stage{padding:var(--s4)}}@media (width<=560px){main{padding:var(--s4) var(--s4) var(--s5)}.hero{padding:var(--s2) 0 var(--s5)}.hero p{font-size:1rem}section.block{margin-top:var(--s7)}section.block>p.sub2{margin-bottom:var(--s4);font-size:1rem}.controls{padding:var(--s2) var(--s4)}.stage{padding:var(--s4)}.bar{grid-template-columns:1fr 1fr;display:grid}.bar .btn{width:100%}.actions .btn{flex:100%}.actions .btn.ghost{flex:40%}.cards,.steps,.feat{gap:var(--s3)}.card .b{padding:var(--s3)}.card h3{font-size:.9375rem}.feat div,.steps li{padding:var(--s4)}.faq details{padding:var(--s3) var(--s4)}.prose p,.prose li{font-size:1rem}}[hidden]{display:none!important}section.block.faq{max-width:var(--prose);margin-left:auto;margin-right:auto}.faq summary{padding-left:.1rem;list-style-position:outside}.feat{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=900px){.feat{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.feat{grid-template-columns:1fr}}
