.sf{max-width:980px;margin:60px auto 100px;color:var(--text);min-width:0}.sf h1{font-size:clamp(28px,4vw,42px);letter-spacing:-.05em;word-break:keep-all;margin:0}.sf-home{padding:90px 0;text-align:center}.sf-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:620px;margin:54px auto 0}.sf-choices .btn{font-size:20px;min-height:170px;border-radius:20px;background:var(--surface)}.sf-heading,.sf-toolbar,.sf-mode,.sf-tools,.sf-next{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sf-heading{gap:20px;margin-bottom:36px}.sf-heading>.btn{min-width:44px;font-size:23px}.sf-toolbar{justify-content:space-between;margin-bottom:36px}.sf-mode .btn[aria-pressed=true]{background:var(--text);color:var(--bg);border-color:var(--text)}.sf .btn{min-height:44px}.sf .btn:disabled{opacity:.4;cursor:default}.sf-sample{font-size:clamp(15px,2vw,20px);line-height:1.9;margin:0 0 26px;word-break:keep-all;overflow-wrap:anywhere}.sf-paper{background:var(--cp-bg);border:1px solid var(--line);border-radius:16px;overflow:hidden}.sf-paper canvas{display:block;width:100%;height:auto;touch-action:none;cursor:crosshair}.sf-edit{justify-content:flex-end;margin-top:14px}.sf-photo{min-height:300px;border:1px solid var(--line);border-radius:16px;display:grid;place-items:center;overflow:hidden;background:var(--surface)}.sf-photo img{display:block;max-width:100%;width:auto;height:auto;max-height:none}.sf-status{min-height:28px;font-size:14px;color:var(--muted);margin-top:16px;overflow-wrap:anywhere}.sf-status[role=alert]{color:var(--danger)}.sf-next{justify-content:flex-end;margin-top:12px}.sf-next .btn{min-width:160px}.sf-result{margin-top:45px;display:grid;gap:20px;justify-items:end}.sf-result textarea{width:100%;min-height:180px;font-size:32px;line-height:1.8;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:24px;resize:vertical;box-sizing:border-box}.sf button:focus-visible,.sf canvas:focus-visible,.sf textarea:focus-visible{outline:2px solid var(--text);outline-offset:4px}.sf-preview-header{display:flex;align-items:center;gap:16px}.sf-preview-header>a{color:var(--text);text-decoration:none;font-weight:700}.sf-preview-header select{margin-left:auto;background:var(--surface);color:var(--text);border:1px solid var(--line);padding:8px 12px;border-radius:20px}.sf-confirm{border:1px solid var(--line);border-radius:20px;background:var(--bg);color:var(--text);max-width:calc(100vw - 40px);padding:30px}.sf-confirm::backdrop{background:var(--line)}.sf-confirm h2{font-size:20px;margin:0 0 25px}.sf-confirm .row{justify-content:flex-end;gap:10px}@media(max-width:600px){.sf{margin-top:30px}.sf-home{padding:65px 0}.sf-choices{gap:14px;margin-top:40px}.sf-choices .btn{font-size:17px;min-height:135px;padding:12px}.sf-heading{margin-bottom:28px;gap:14px}.sf-toolbar{gap:18px;margin-bottom:26px}.sf-tools{margin-left:auto}.sf-sample br{display:none}.sf-sample{line-height:1.9}.sf-paper{border-radius:10px}.sf-result textarea{font-size:26px;padding:18px}.sf-next .btn{width:100%}.sf-next{display:block}}
.sf.sf-home .sf-choices .btn{min-height:170px;border-radius:20px}
.sf-sample summary{cursor:pointer;font-size:15px;color:var(--muted);padding:8px 0}
.sf-sample>div{max-height:260px;overflow:auto;padding:12px 4px 12px 0}
.sf.sf-home .sf-choices .btn{flex-direction:column;gap:14px;white-space:normal;word-break:keep-all;padding:26px 20px}
.sf-choices strong{font-size:20px;font-weight:600;line-height:1.5}
.sf-choices span{font-size:14px;color:var(--muted);line-height:1.7}
.sf-toolbar .sf-mode,.sf-toolbar .sf-tools{min-width:0}
.sf-toolbar .btn{white-space:normal;word-break:keep-all}
.sf-photo-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;list-style:none;padding:24px 0;margin:0 0 28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sf-photo-steps li{min-width:0}.sf-photo-steps li>span{display:block;font-weight:600;margin-bottom:16px;word-break:keep-all}.sf-photo-steps p{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 16px;word-break:keep-all}.sf-photo-steps .btn{white-space:normal;word-break:keep-all}.sf-sample br{display:initial}
.sf-availability{border:1px solid var(--line);border-radius:12px;padding:18px 20px;line-height:1.8;font-size:15px;margin:-12px 0 28px;word-break:keep-all}
.sf-progress{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:18px 0}.sf-progress progress{flex:1;min-width:120px;accent-color:var(--text);height:12px}.sf-progress span{font-variant-numeric:tabular-nums;font-size:14px}.sf-live-preview{border:1px solid var(--line);border-radius:16px;padding:24px;margin-top:24px}.sf-live-preview>span{font-size:14px;color:var(--muted)}.sf-live-preview p{font-size:clamp(30px,5vw,54px);line-height:1.8;margin:14px 0;word-break:keep-all}
.sf-archive{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);font-size:14px}.sf-archive summary{cursor:pointer;color:var(--muted);padding:8px 0}.sf-archive p{line-height:1.8;color:var(--muted);margin:12px 0}.sf-archive .btn{white-space:normal;word-break:keep-all}
@media(max-width:760px){.sf-photo-steps{grid-template-columns:1fr;gap:24px}.sf-photo-steps li>span{margin-bottom:10px}}
@media(max-width:600px){.sf-choices{grid-template-columns:1fr;gap:16px;max-width:400px}.sf-heading{align-items:flex-start}.sf-heading h1{font-size:28px;flex:1}.sf-toolbar .sf-tools{margin-left:0}.sf-choices strong{font-size:19px}}
@media(max-width:600px){.sf.sf-home .sf-choices .btn{min-height:135px}}
.sf{max-width:none;margin:0 0 100px}.sf-photo img{max-height:440px;object-fit:contain}.sf-making{overflow:hidden;position:relative;text-align:center;padding:46px 24px 28px;border:1px solid var(--line);border-radius:24px;background:var(--surface)}.sf-making h3{font-size:24px;font-weight:500;margin:28px 0 8px;word-break:keep-all}.sf-making-note{color:var(--muted);font-size:14px}.sf-orbit{width:min(320px,75vw);aspect-ratio:1;margin:auto;position:relative;isolation:isolate}.sf-orbit:before,.sf-orbit:after{content:'';position:absolute;inset:18%;border:1px solid var(--line);border-radius:43% 57% 62% 38%;animation:sf-breathe 13s ease-in-out infinite alternate}.sf-orbit:after{inset:26%;animation-delay:-6s;animation-direction:alternate-reverse}.sf-orbit>span{position:absolute;left:calc(50% - 16px);top:calc(50% - 20px);width:32px;font-size:27px;color:var(--text);opacity:0;animation:sf-gather 8s cubic-bezier(.45,0,.3,1) infinite;animation-delay:calc(var(--i)*-.67s);will-change:transform,opacity}.sf-seed{position:absolute;inset:36%;display:grid;place-items:center;border-radius:36%;background:var(--bg);color:var(--text);font-size:44px;box-shadow:0 0 50px var(--line);animation:sf-heart 4s ease-in-out infinite}.sf-orbit svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}.sf-orbit circle{fill:none;stroke:var(--text);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:666;stroke-dashoffset:calc(666*(1 - var(--sf-done)));transition:stroke-dashoffset 1s ease}.sf-making .sf-progress{max-width:600px;margin:32px auto 0}.page-h .h-link{padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer}
@keyframes sf-gather{0%{transform:rotate(var(--angle)) translateX(140px) rotate(calc(-1*var(--angle))) scale(.6);opacity:0}18%{opacity:.65}65%{opacity:.9}86%,100%{transform:rotate(calc(var(--angle) + 80deg)) translateX(10px) rotate(calc(-1*var(--angle) - 80deg)) scale(.15);opacity:0}}
@keyframes sf-breathe{to{transform:rotate(190deg) scale(1.12);border-radius:60% 40% 35% 65%}}
@keyframes sf-heart{50%{transform:rotate(-7deg) scale(1.08);border-radius:50% 38% 45% 35%}}
@media(max-width:600px){.sf{margin-top:0}.sf-making{padding:28px 14px}.sf-making h3{font-size:20px}}
