.to-spot{pointer-events:none;background:radial-gradient(closest-side,#ffffffe6,#0000);border-radius:50%;position:absolute;inset:4% 10% 0}.to-canvas{margin-inline:auto;position:relative}.to-group{margin-top:1.4rem}.to-label{color:var(--sf-ink-soft);margin-bottom:.5rem;font-size:.78rem;font-weight:600;display:block}.to-sizes{flex-wrap:wrap;gap:.5rem;display:flex}.to-size,.to-open,.to-view-btn{cursor:pointer}.to-size{border:1px solid var(--sf-line);border-radius:var(--sf-radius);min-width:3rem;height:2.6rem;color:var(--sf-ink);background:#fff;padding:0 .9rem;font-size:.85rem;font-weight:700;transition:border-color .2s,background .2s,color .2s}.to-size:hover{border-color:var(--sf-ink-muted)}.to-size[aria-checked=true]{border-color:var(--sf-ink);background:var(--sf-ink);color:#fff}.to-note{color:var(--sf-ink-muted);margin-top:1.4rem;font-size:.75rem}@media (prefers-reduced-motion:reduce){.to-canvas{transition:none}}.to-open{background:linear-gradient(120deg, var(--sf-ink) 0%, #2c2c2c 55%, var(--sf-brand-deep) 130%);color:#fff;text-align:start;border-radius:1.1rem;align-items:center;gap:.85rem;width:100%;padding:.75rem .9rem;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 30px -18px #171717cc}.to-open:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000 30%,#ffffff29 48%,#0000 66%);animation:4.5s ease-in-out 1.2s infinite to-sheen;position:absolute;inset:0;transform:translate(-120%)}.to-open:hover{transform:translateY(-1px);box-shadow:0 18px 34px -18px #171717e6}.to-open:focus-visible{outline:2px solid var(--sf-brand);outline-offset:3px}.to-open-icon{background:var(--sf-mint);width:2.6rem;height:2.6rem;color:var(--sf-brand-deep);border-radius:.85rem;flex:none;place-items:center;display:grid}.to-open-text{flex:1;gap:.1rem;min-width:0;display:grid}.to-open-title{font-size:.95rem;font-weight:800}.to-open-hint{color:#ffffffad;font-size:.74rem}.to-open-arrow{opacity:.8;flex:none;transition:transform .2s}.to-open:hover .to-open-arrow{transform:translate(-3px)}@keyframes to-sheen{0%,60%{transform:translate(-120%)}to{transform:translate(120%)}}@media (prefers-reduced-motion:reduce){.to-open:after{animation:none}}.to-modal{z-index:300;background:radial-gradient(70% 60% at 40% 30%, #fff 0%, transparent 70%), linear-gradient(to bottom, var(--sf-paper-deep), #e6e4df);grid-template-columns:minmax(0,1fr) minmax(0,22rem);align-items:center;gap:clamp(1rem,3vw,3rem);padding:clamp(1rem,3vw,2.5rem);animation:.32s cubic-bezier(.2,.8,.2,1) both to-modal-in;display:grid;position:fixed;inset:0}.to-modal-stage{grid-template-rows:auto minmax(0,1fr);place-items:start center;gap:.75rem;height:100%;min-height:0;display:grid;position:relative}.to-figure{place-items:center;height:100%;min-height:0;display:grid;position:relative}.to-turner{transform-origin:50%;height:100%}.to-modal-stage .to-canvas{width:auto;height:min(100%,100dvh - 9.5rem);max-height:none}.to-view-btn{height:2.5rem;box-shadow:var(--sf-shadow-soft);color:var(--sf-ink);background:#fffffff0;border-radius:999px;align-items:center;gap:.45rem;padding:0 1.1rem;font-size:.82rem;font-weight:700;transition:background .2s;display:inline-flex}.to-view-btn:hover:not(:disabled){background:#fff}.to-modal-panel{border-radius:var(--sf-radius-lg);background:var(--sf-card);box-shadow:var(--sf-shadow);padding:1.6rem}.to-modal-title{color:var(--sf-ink);font-size:1.3rem;font-weight:900;line-height:1.6}.to-modal-close{top:1rem;width:2.75rem;height:2.75rem;color:var(--sf-ink);box-shadow:var(--sf-shadow-soft);background:#fff;border-radius:50%;place-items:center;display:grid;position:absolute;inset-inline-end:1rem}@media (max-width:760px){.to-modal{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);padding:3.75rem 1rem 1rem}.to-modal-stage .to-canvas{height:min(100%,56dvh)}.to-modal-panel{text-align:center;padding:1rem 1.1rem}.to-modal-panel .sf-section-kicker,.to-modal-panel .to-note{display:none}.to-modal-panel .to-group{margin-top:.75rem}.to-modal-panel .to-sizes{justify-content:center}}@keyframes to-modal-in{0%{opacity:0;transform:scale(.98)}}@media (prefers-reduced-motion:reduce){.to-modal{animation:none}}
