.gcfop{position:relative}.gcfop-search{font:inherit;border:1px solid var(--line);background:var(--bg-card);color:var(--text);border-radius:8px;width:210px;max-width:100%;padding:7px 10px;font-size:14px}.gcfop-only{color:var(--text-2);cursor:pointer;align-items:center;gap:4px;font-size:14px;display:inline-flex}.gcfop-copynote{color:var(--text-2);text-align:center;max-width:760px;margin:8px auto 4px;font-size:13px}.gcfop-copyarea{border:1px solid var(--line);background:var(--bg-card);width:min(100%,520px);color:var(--text);resize:none;border-radius:8px;height:48px;margin:0 auto 8px;padding:6px 8px;font:14px/1.5 ui-monospace,Consolas,monospace;display:block}.gcfop-copyarea[hidden],.gcfop-copynote[hidden]{display:none}.gcfop-grid{grid-template-columns:repeat(auto-fill,minmax(230px,250px));justify-content:center;gap:12px;max-width:1100px;margin:14px auto 0;display:grid}.gcfop-empty{text-align:center;color:var(--text-3);max-width:760px;margin:18px auto;font-size:14px}.gcfop-card{border:1px solid var(--line);background:var(--bg-card);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:12px;display:flex}.gcfop-card[hidden]{display:none}.gcfop-card.is-learned{background:var(--bg-soft)}.gcfop-card.is-demo{grid-column:1/-1;justify-self:center;width:100%;max-width:560px}.gcfop-head{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;width:100%;display:flex}.gcfop-title{color:var(--text);margin:0;font-size:17px;font-weight:800}.gcfop-tag{color:var(--text-3);border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:12px}.gcfop-learned{color:var(--text-2);cursor:pointer;align-items:center;gap:3px;font-size:13px;display:inline-flex}.gcfop-fig{justify-content:center;display:flex}.gcfop-svg{width:132px;height:132px;display:block}.gcfop-algrow{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.gcfop-alg{color:var(--text);background:var(--bg-soft);word-break:break-word;border-radius:6px;padding:3px 8px;font:600 14px/1.5 ui-monospace,Consolas,monospace}.gcfop-copy{font:inherit;border:1px solid var(--line);background:var(--bg-card);color:var(--text-2);cursor:pointer;border-radius:6px;padding:3px 9px;font-size:12px}.gcfop-copy:hover{background:var(--bg-soft)}.gcfop-note{color:var(--text-2);text-align:center;margin:0;font-size:13px;line-height:1.6}.gcfop-meta{color:var(--text-3);margin:0;font-size:12px}.gcfop-demo-btn{padding:5px 12px;font-size:13px}.gcfop-demo{border-top:1px dashed var(--line);flex-direction:column;align-items:center;gap:8px;width:100%;padding-top:8px;display:flex}.gcfop-net{grid-template-columns:repeat(4,54px);justify-content:center;gap:4px;display:grid}.gcfop-net-gap{width:54px;height:54px}.gcfop-face{background:#1d1b19;border-radius:4px;grid-template-columns:repeat(3,1fr);gap:1px;width:54px;height:54px;padding:1px;display:grid}.gcfop-cell{background:#ccc;border-radius:1px;width:100%;height:100%;transition:background-color .15s;display:block}.gcfop-toks{flex-wrap:wrap;justify-content:center;gap:3px;max-width:520px;display:flex}.gcfop-tok{color:var(--text-3);border-radius:4px;padding:1px 5px;font:600 14px/1.4 ui-monospace,Consolas,monospace}.gcfop-tok.is-cur{background:var(--brand-soft);color:var(--brand-dark)}.gcfop-steplabel{color:var(--text-2);text-align:center;margin:0;font-size:13px}.gcfop-ctrl{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}@media (max-width:720px){.gcfop-search{width:100%}.gcfop-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.gcfop-card{padding:10px 8px}.gcfop-svg{width:112px;height:112px}.gcfop-alg{font-size:13px}.gcfop-net{grid-template-columns:repeat(4,44px)}.gcfop-net-gap,.gcfop-face{width:44px;height:44px}}.gcfop-search{border:1.5px solid var(--t-edge);background-color:var(--t-well);border-radius:10px;box-shadow:inset 0 1.5px 3px #50371412}.gcfop-search:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--t-ring), inset 0 1px 2px #5037140d;background-color:#fff;outline:none}.gcfop-search:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--t-ring), inset 0 1px 2px #5037140d;background-color:#fff;outline:none}.gcfop-card{border:1.5px solid var(--t-card-edge);background:var(--t-card-bg);box-shadow:var(--t-card-shadow);border-radius:16px}.gcfop-card.is-learned{border-color:var(--t-well-edge);background:var(--t-well-bg);box-shadow:none}.gcfop-card.is-demo{border:1.5px solid var(--t-panel-edge);background:var(--t-panel-bg);box-shadow:var(--t-panel-shadow);border-radius:20px;position:relative;overflow:hidden}.gcfop-card.is-demo:before{content:"";background:linear-gradient(90deg, transparent, var(--brand), transparent);opacity:.7;border-radius:0 0 3px 3px;height:3px;position:absolute;top:0;left:22%;right:22%}.gcfop-title{color:var(--t-ink)}.gcfop-tag{border-color:var(--t-card-edge);background:var(--t-well-bg);color:#8f7f68}.gcfop-svg{filter:drop-shadow(0 3px 5px #6e501e33)}.gcfop-alg{background:var(--t-well-bg);color:var(--t-digit);box-shadow:inset 0 0 0 1px var(--t-well-edge), inset 0 2px 3px #5037140f;border-radius:8px}.gcfop-copy{border-color:var(--t-edge);background:var(--t-face);color:var(--t-ink);box-shadow:0 1.5px 0 var(--t-drop);border-radius:8px;transition:transform 80ms,box-shadow 80ms}.gcfop-copy:hover{background:var(--t-hover);border-color:#bea77f}.gcfop-copy:active{box-shadow:0 0 0 var(--t-drop);transform:translateY(1.5px)}.gcfop-demo{border-top-color:#e2d1ae}.gcfop-face{box-shadow:inset 0 1px #ffffff40,0 2px #00000040}.gcfop-cell{box-shadow:inset 0 1px #ffffff59}.gcfop-tok.is-cur{background:var(--brand-soft);color:var(--brand-ink);box-shadow:inset 0 0 0 1px var(--brand)}.gcfop-tok.is-done{color:var(--t-ink)}@media (prefers-reduced-motion:reduce){.gcfop-copy,.gcfop-copy:active{transition:none;transform:none}}.is-fs .gcfop-grid{max-width:1600px}.gcfop-learned input{width:17px;height:17px;accent-color:var(--brand);cursor:pointer;margin:0}.gcfop-only input{width:17px;height:17px;accent-color:var(--brand);margin:0}@media (max-width:720px){.gcfop-learned{margin:-4px 0;padding:6px 8px;font-size:14px}.gcfop-learned input{width:20px;height:20px}.gcfop-only{padding:6px 4px}.gcfop-ctrl .g-btn{min-width:76px;min-height:42px}}
