.fn{--fn-line:#ffffff17;--fn-dim:var(--tx3);--fn-accent:var(--accent);background:radial-gradient(1000px 500px at 25% -10%, var(--accent-08), transparent 60%), var(--bg);min-height:100dvh;color:var(--tx);font-family:var(--font-ohf-inter), system-ui, sans-serif;padding:14px 20px 60px;font-size:12.5px}.fn-top{flex-wrap:wrap;align-items:center;gap:14px;max-width:1080px;margin:0 auto 20px;display:flex}.fn-back{color:var(--fn-dim);border-radius:8px;padding:6px 10px;font-size:12.5px;text-decoration:none}.fn-back:hover{color:var(--tx);background:#ffffff0f}.fn-top h1{letter-spacing:-.02em;margin:0;font-size:22px}.fn-free{color:var(--good);border:1px solid #52c87859;border-radius:999px;margin-left:auto;padding:4px 12px;font-size:11px}.fn-note{max-width:1080px;color:var(--good);background:#52c87814;border:1px solid #52c87840;border-radius:10px;margin:0 auto 14px;padding:10px 14px;font-size:13px}.fn-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:16px;max-width:1080px;margin:0 auto;display:grid}.fn-card{background:var(--s1);border:1px solid var(--line);counter-increment:fn-step;border-radius:16px;flex-direction:column;gap:12px;padding:18px 20px 20px;transition:border-color .18s,box-shadow .18s;display:flex;position:relative}.fn-grid{counter-reset:fn-step}.fn-card:hover{border-color:var(--accent-32);box-shadow:0 10px 28px #0000004d}.fn-card h2{align-items:center;gap:10px;margin:0;font-size:15px;display:flex}.fn-card h2:before{content:counter(fn-step);background:var(--accent-14);border:1px solid var(--accent-32);width:22px;height:22px;color:var(--fn-accent);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.fn-card>p{color:var(--tx2);margin:0;font-size:12.5px;line-height:1.5}.fn-drop{cursor:pointer;border:1.5px dashed var(--line-2);color:var(--tx2);background:#0003;border-radius:12px;align-items:center;gap:10px;padding:14px 16px;font-size:12.5px;transition:border-color .15s,background .15s;display:flex}.fn-drop:hover{border-color:var(--fn-accent);background:var(--accent-08);color:var(--tx)}.fn-drop[data-loaded=true]{border-style:solid;border-color:#52c87866}.fn-drop input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.fn-drop-icon{font-size:18px}.fn-ratios{flex-wrap:wrap;gap:6px;display:flex}.fn-ratios button{border:1px solid var(--line-2);color:var(--tx2);cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-family:inherit;font-size:11.5px;transition:border-color .15s,color .15s}.fn-ratios button:hover{color:var(--tx)}.fn-ratios button[data-on=true]{border-color:var(--fn-accent);color:var(--fn-accent);background:var(--accent-08)}.fn-preview{border:1px solid var(--fn-line);background:#00000059;border-radius:10px;width:100%}.fn-slider{color:var(--tx2);flex-direction:column;gap:6px;font-size:11.5px;display:flex}.fn-slider input[type=range]{width:100%;accent-color:var(--fn-accent)}.fn-slider input[type=number]{border:1px solid var(--line-2);color:var(--tx);background:#00000040;border-radius:10px;padding:8px 12px;font-size:12.5px}.fn-slider input[type=number]:focus:not(:focus-visible){border-color:var(--fn-accent);outline:none}.fn-go{background:var(--fn-accent);color:var(--accent-ink);cursor:pointer;border:none;border-radius:999px;align-self:flex-start;padding:9px 18px;font-family:inherit;font-size:13px;font-weight:600;transition:filter .15s}.fn-go:hover:not(:disabled){filter:brightness(1.08)}.fn-go:focus-visible{outline:2px solid var(--fn-accent);outline-offset:2px}.fn-go:disabled{opacity:.4;cursor:default}.fn-go+.fn-go{border:1px solid var(--line-2);color:var(--tx2);background:0 0}.fn-go+.fn-go:hover:not(:disabled){border-color:var(--fn-accent);color:#fff;filter:none}.fn-foot{max-width:1080px;color:var(--tx3);margin:26px auto 0;font-size:12.5px;line-height:1.6}.fn-foot a{color:var(--fn-accent)}@media (prefers-reduced-motion:reduce){.fn-card,.fn-drop,.fn-ratios button,.fn-go{transition:none}}.fn{padding:28px 24px 72px}.fn-top.pg-head{align-items:flex-start;max-width:1080px;margin:0 auto 22px}.fn-top h1{font-size:28px}.fn-top p{margin:6px 0 0}.fn-free{background:#7fd79a0f;margin:4px 0 0}.fn-note{border-left:3px solid var(--good)}.fn-grid{counter-reset:fn-step;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr))}.fn-card{border-color:var(--line-2);box-shadow:inset 0 1px #ffffff0b}.fn-card h2{font-size:16px}.fn-card:focus-within{border-color:var(--accent-32)}.fn-drop{gap:12px;min-height:64px;padding:16px;position:relative}.fn-drop-icon{background:var(--s2);border:1px solid var(--line-2);width:36px;height:36px;color:var(--tx2);border-radius:10px;flex:none;place-items:center;font-size:16px;display:grid}.fn-drop-text{gap:2px;min-width:0;display:grid}.fn-drop-text>span{text-overflow:ellipsis;white-space:nowrap;color:var(--tx);font-weight:550;overflow:hidden}.fn-drop-text small{color:var(--tx3);font-size:11.5px}.fn-drop:hover .fn-drop-icon,.fn-drop[data-over=true] .fn-drop-icon{color:var(--accent-strong);border-color:var(--accent-32)}.fn-drop[data-over=true]{border-color:var(--accent);background:var(--accent-08)}.fn-drop:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-08)}.fn-drop[data-loaded=true]{background:var(--accent-08);border-color:var(--accent-32)}.fn-drop[data-loaded=true] .fn-drop-icon{color:var(--good)}.fn-ratios button{min-height:30px}.fn-ratios button:focus-visible,.fn-go:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fn-preview{background:var(--bg) repeating-conic-gradient(#ffffff08 0 25%, transparent 0 50%) 0 0 / 16px 16px;display:block}.fn-slider>span{color:var(--tx2)}.fn-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.fn-actions .fn-go{min-height:36px}.fn-actions .fn-go:first-child{flex:auto;justify-content:center}.fn-go{justify-content:center;align-items:center;gap:7px;display:inline-flex}.fn-go:disabled[title]{cursor:not-allowed}.fn-foot{border-top:1px solid var(--line);padding-top:16px}.fn-foot a{text-underline-offset:3px}@media (max-width:640px){.fn{padding:18px 16px 56px}.fn-top h1{font-size:23px}.fn-actions .fn-go{flex:100%}}
